Firebase云功能onCreate无法运行?

时间:2019-12-30 02:41:02

标签: javascript firebase google-cloud-firestore google-cloud-functions

我一直在学习教程(https://www.youtube.com/watch?v=9kRgVxULbag&t=1108s),并且试图使.onCreate正常工作,但是什么也没发生。

我要复制的代码在视频中的19:30左右,这就是我得到的:

exports.createinvite = functions.firestore
    .document('referrals/{referralid}')
    .onCreate(event => {
    console.log('asfasdfasdf')

    const docid = event.params.referralid;
    const code = event.data.data().thing;
    const referralref = admin.filestore().collection('referrals').doc(docid)

    return referralref.update({message: `asfasfasdfa`})
});

我们将不胜感激:)

2 个答案:

答案 0 :(得分:0)

您正在遵循一个非常古老的教程,我建议您停止遵循它,并从诸如official Firebase videos on YouTube之类的新内容中学习。 API已更改。

也请遵循documentation for Firestore triggers来了解onCreate函数的外观。它们采用两个参数,即快照和上下文:

exports.createinvite = functions.firestore
    .document('referrals/{referralid}')
    .onCreate((snapshot, context) => { ... })

该模式中的通配符在context.params中可用。您将使用context.params.referralid来获取通配符的值。

答案 1 :(得分:0)

如果您查看Firestore event triggers的文档,则会看到onCreate的调用带有两个参数:snapshotcontextparams属性位于context / second参数上,而不是第一个。

所以:

exports.createinvite = functions.firestore
    .document('referrals/{referralid}')
    .onCreate((snapshot, context) => {
    console.log('asfasdfasdf')

    const docid = context.params.referralid;
    const code = snapshot.data().thing;
    ...

如果本教程中的某些内容不起作用,我强烈建议您查看文档,因为自创建本教程以来产品可能已经更新。