【问题标题】:How to update data in a document when another is being created with Firebase Functions?使用 Firebase 函数创建另一个文档时如何更新文档中的数据?
【发布时间】:2020-12-27 21:12:41
【问题描述】:

我在 Firestore“customers/{userId}”中有一个用户集合,其中每个用户都有一个“uploadsLeft”字段和值。

每次用户将项目上传到“projects/{docId}”时,我都希望“uploadsLeft”值减 1。我希望通过 Firebase 函数来完成。我该怎么做?

感谢任何反馈:)

exports.reduceUploadsLeft = functions.firestore
.document('projects/{docId}')
.onCreate((snap, context) => {

  const data = snap.data();
  var docRef = db.document('customers/'+data.owner);
  docRef.update({
      uploadsLeft: admin.firestore.FieldValue.increment(-1)
  })
});

首先,由于某种原因,减量不起作用,每次在“项目”中创建新文档时都会触发,我希望它仅在用户为“项目”创建新文档时触发。

【问题讨论】:

    标签: javascript node.js firebase google-cloud-firestore google-cloud-functions


    【解决方案1】:

    我建议使用 Cloud Functions 阅读 documentation for asynchronous programming。您需要返回一个承诺,该承诺在所有异步工作完成后实现。 update() 是异步的,返回一个promise,所以可以直接返回。

      return docRef.update({
          uploadsLeft: admin.firestore.FieldValue.increment(-1)
      })
    

    【讨论】:

      猜你喜欢
      • 2019-09-18
      • 2021-04-08
      • 2013-08-08
      • 1970-01-01
      • 2023-02-09
      • 2019-12-04
      • 1970-01-01
      • 2019-09-16
      • 2021-02-24
      相关资源
      最近更新 更多