exports.createHook = functions.database.ref('/Responses/{ResponsesId}').onCreate((snap, context) => {
console.log('triggered')
var response = snap.val
console.log(response.text);
});
我已写信给Firestore并且没有触发,我想念什么?
Here is a picture of my functions panel明确部署到云
Here is a picture of the logs它是构建函数时不执行的唯一日志记录。
最佳答案
我已写信给Firestore,但未触发
您可能已经写过Firestore,但是您的代码是作为Firebase Realtime Database trigger编写的(它使用functions.database
)。您需要使用Firestore triggers来响应Firestore中的事件(或者,您需要将更新写入Realtime数据库而不是Firestore中)。
使它们混淆很容易(它们的名称是如此相似!),但它们并不相同,因此需要进行不同的编码。
例如,Firestore onCreate
触发器的原型应类似于:
exports.createHook = functions.firestore
.document('Responses/{ResponsesId}')
.onCreate((change, context) => { .... }
同样在注释线程中,我注意到您说过“ onCreate应该在每次对引用进行写操作时调用”。这是不正确的。
onCreate
仅应在首次写入文档时调用。关于javascript - 为什么在响应中创建文档时,firebase云功能未触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58631959/