Firebase-tools: 展开有关如何将 firebase-tools 用作模块的文档

创建于 2017-04-29  ·  4评论  ·  资料来源: firebase/firebase-tools

您可以通过CLI执行的许多命令在将其作为模块加载时很难弄清楚如何以编程方式执行。 更新有关语法、可用命令等的文档会有所帮助。

我有(或有但已解决)的问题:

  • 如何使用tools.functions.config.get打印所有键的列表
  • 如何部署功能
  • 如何获取已部署的所有功能的列表

请注意这一点:必须真正深入研究 cloudfunctions.js、api.js 和 auth.js。 原来这个功能在包内可用,只是没有出现在 firebase-tools 中。 这真的很有帮助。

最有用的评论

我也在努力让任何东西在这里工作。
@SJAnderson你能在这里发布一些你的例子吗? _特别是配置获取(并设置,如果你有的话)_🙏

所有4条评论

有一个样本

var client = require('firebase-tools');
client.list().then(function(data) {
  console.log(data);
}).catch(function(err) {
  // handle error
});

但是我必须安装 firebase-tools(没有 -g)才能工作。

尝试过这样的事情

client.database.get('/app-settings/test').then((data) => {
    console.log(data);
}).catch(function (err) {
    console.log(err);
});

由于缺乏文档,但出现此错误

TypeError: Cannot create property 'project' on string '/app-settings/test'
    at Command._prepare (/Users/someone/Documents/test/node_modules/firebase-tools/lib/command.js:104:19)

请使用一组适当的样本。

我也在努力让任何东西在这里工作。
@SJAnderson你能在这里发布一些你的例子吗? _特别是配置获取(并设置,如果你有的话)_🙏

我一直在努力解决这个问题,直到我挖掘了源头。 所以,在我们有这方面的文档之前,我认为这有效:

  • 参数像往常一样传递给函数
  • 选项(--foo bar)需要作为选项对象的一部分传入
  • 选项对象必须作为 _last_ 参数传入
  • 您总是将全局选项与命令选项合并
  • 全局选项与命令行相同,但额外增加了cwd
  • 带有冒号的命令作为client.<command>.<subcommand>

例子:

firebase target hosting --project foo
==>
client.target("hosting", { project: foo})

firebase deploy --only hosting  --token $FIREBASE_TOKEN
==>
client.deploy({ only: 'hosting', token: process.env.FIREBASE_TOKEN })

firebase target:apply mytype mytarget
==>
client.target.apply('mytype', 'mytarget')     // No options added!

另外,如果您有process.env.FIREBASE_TOKEN ,我认为您不需要在节点代码中添加token选项,它会自动加载。 HTH

在此文件和命令目录中阅读更多内容:
https://github.com/firebase/firebase-tools/blob/master/src/commands/index.js

@jesperp感谢您清晰简洁的解释! 即使作为“知道”这个答案的人,当我忘记时,我会参考你的答案,直到我们得到文档。

此页面是否有帮助?
0 / 5 - 0 等级