Firebase云功能仅在我从控制台手动将数据添加到Firestore时触发

时间:2018-07-20 15:04:31

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

当我以编程方式将内容添加到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));
});

1 个答案:

答案 0 :(得分:0)

您应该返回异步runTransaction()方法返回的Promise。

如果不这样做,则可能是运行函数的Cloud Functions实例在函数成功执行事务之前关闭。

我建议您观看Firebase团队的以下2个视频:https://www.youtube.com/watch?v=7IkUgCLr5oAhttps://www.youtube.com/watch?v=652XeeKNHSk