当我以编程方式将内容添加到Firestore时,我的函数不会触发,仅当我从控制台手动添加数据时才会执行。
这是我的职能:
exports.updateFirestoreStatistics = functions.firestore.document('applications/2018/all/{app}').onWrite(change => {
let ref = db.collection('statistics').doc('2018');
let t = db.runTransaction(transaction => {
return transaction.get(ref).then(doc => {
let updatedAppCount = doc.data().applications + 1
return transaction.update(ref, {applications: updatedAppCount});
})
}).then(() => console.log('Stat updated! ')).catch(err => console.log('An error occured ', err));
});
答案 0 :(得分:0)
您应该返回异步runTransaction()
方法返回的Promise。
如果不这样做,则可能是运行函数的Cloud Functions实例在函数成功执行事务之前关闭。
我建议您观看Firebase团队的以下2个视频:https://www.youtube.com/watch?v=7IkUgCLr5oA和https://www.youtube.com/watch?v=652XeeKNHSk