【发布时间】:2018-04-04 10:34:58
【问题描述】:
我正在尝试清理我的构建系统,我想使用firebase-tools (Firebase-hosted docs) 模块来执行此操作。在 CLI 中使用该包的文档已经足够好了,但将其用作节点模块的文档却很少(而且深入研究该包的源代码也并不简单)。
在撰写本文时,以下是相关文档(仅出现在 GH 存储库中):
作为模块使用
Firebase CLI 也可以通过编程方式用作标准节点模块。这只能在您的机器上完成,而不能在 Cloud Functions 中完成。每个命令都作为一个函数公开,该函数接受一个选项对象并返回一个 Promise。例如:
var client = require('firebase-tools');
client.list().then(function(data) {
console.log(data);
}).catch(function(err) {
// handle error
});
client.deploy({
project: 'myfirebase',
token: process.env.FIREBASE_TOKEN,
cwd: '/path/to/project/folder'
}).then(function() {
console.log('Rules have been deployed!')
}).catch(function(err) {
// handle error
});
如您所见,仅包括两个非常基本的示例,并且没有描述可以为每个命令提供的各种选项。
例如,CLI 使用--only 标签(例如--only database,如果只想推送新规则)。如果我只想部署规则,是否在选项中包含only: "database"?
示例中的输出确实吹嘘“规则已部署!”成功消息,但提供给deploy 的选项似乎没有表明这只会推送规则(而不是没有--only 选项的完整部署)!
额外问题:如果我的规则文件与我想要托管的文件有不同的路径怎么办?我只看到示例中提供了一个cwd 选项。
这里的一些更清晰的文档会有很长的路要走:)
【问题讨论】: