将firebase-functions
与节点和exports.foo = functions.database.ref('/object').onWrite(event => {});
一起使用。
我可以部署到云端并进行测试......我可以使用firebase serve --only functions
在本地轻松测试http类型函数。
但是,我没有找到在本地测试触发器的方法。可能吗?怎么样?
答案 0 :(得分:4)
最近,Firebase团队发布了Firebase CLI的更新,增加了在本地调用其他类型触发器的功能。它记录在案here。请确保您已将CLI更新到最新版本以获得此新功能:npm install -g firebase-tools@latest
答案 1 :(得分:1)
所以我会坚持远程部署和观看远程日志......好的马可波罗调试。
答案 2 :(得分:1)
现在有可能。我终于找到这篇清楚的中等文章,解释了如何做:https://medium.com/@moki298/test-your-firebase-cloud-functions-locally-using-cloud-functions-shell-32c821f8a5ce
要在本地运行触发器,请使用“功能外壳”工具:
1-我的Firestore代码(中级使用RealTime数据库):
exports.testTrigger = functions.firestore
.document('messages/{messageId}')
.onCreate((snapshot, context) => {
let message = snapshot.data()
return snapshot.ref.set({
...message,
status : 'sent'
})
})
2-我在终端中运行firebase shell函数
firebase functions:shell
3-我用参数中的数据调用“ testTrigger”云函数触发器
testTrigger({text:"hello"})
4-我的Firestore数据库中有一个由触发器更新的新“消息”
答案 3 :(得分:1)
自2020年5月21日以来,现在可以在本地测试触发器!
请参阅发布博客文章https://firebase.googleblog.com/2020/05/local-firebase-emulator-ui.html
总是也可以看看发行说明https://firebase.google.com/support/releases#may_21_2020
请注意,如问题Update of Firebase CLI to 8.4.0 gives errors about "Unsupported engine" saying '{"node":">=10"}'所述,8.4需要节点10。