当我用程序向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));
});
您应该返回异步runTransaction()
方法返回的Promise。
如果您不这样做,运行您的函数的云函数实例可能会在您的函数成功执行事务之前关闭。
我建议您观看Firebase团队的以下2个视频:https://www.youtube.com/watch?v=7IkUgCLr5oA和https://www.youtube.com/watch?v=652XeeKNHSk