是否可以在本地测试Firebase触发器?

时间:2017-10-06 22:19:15

标签: node.js firebase firebase-realtime-database google-cloud-functions

firebase-functions与节点和exports.foo = functions.database.ref('/object').onWrite(event => {});一起使用。

我可以部署到云端并进行测试......我可以使用firebase serve --only functions在本地轻松测试http类型函数。

但是,我没有找到在本地测试触发器的方法。可能吗?怎么样?

4 个答案:

答案 0 :(得分:4)

最近,Firebase团队发布了Firebase CLI的更新,增加了在本地调用其他类型触发器的功能。它记录在案here。请确保您已将CLI更新到最新版本以获得此新功能:npm install -g firebase-tools@latest

答案 1 :(得分:1)

道格在评论中回答道。虽然在某些情况下调用触发器可能很有用(感谢Doug),但它与部署的触发器不同,但尚未完成。

所以我会坚持远程部署和观看远程日志......好的马可波罗调试。

答案 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。