我一直在学习教程(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`})
});
我们将不胜感激:)
答案 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
的调用带有两个参数:snapshot
和context
。 params
属性位于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;
...
如果本教程中的某些内容不起作用,我强烈建议您查看文档,因为自创建本教程以来产品可能已经更新。