【问题标题】:Firebase cloud function won't insert into firestoreFirebase 云功能不会插入到 Firestore
【发布时间】:2019-07-08 01:35:32
【问题描述】:

我正在尝试将来自 Firebase 云功能的文档添加到 Firestore,但它不起作用。这就是我正在做的:

import * as admin from "firebase-admin"
import * as functions from "firebase-functions"

admin.initializeApp()

exports.findDeck = functions.https.onCall((data: { deckId: string }) => {
    admin.firestore().collection("messages").add({original: "for me"})
    return requestDeck.findDeck(data.deckId)
})

看起来应该很简单。我在这里举个例子:

https://github.com/firebase/functions-samples/blob/master/quickstarts/uppercase-firestore/functions/index.js

我也尝试过关注 Node.js 的 Firestore 文档,并使用 set 而不是 add。它们都没有做任何事情,或者似乎报告了错误。

【问题讨论】:

  • 我回答了以下问题的最可能原因。对于未来的问题,请始终包含写入 Cloud Functions 日志记录面板的信息,因为它包含有关函数调用的重要信息。
  • 在这个线程中查看我对同一问题的回答。我们必须使用异步和等待。 stackoverflow.com/a/58057457/8138641

标签: typescript firebase google-cloud-firestore


【解决方案1】:

将文档添加到 Cloud Firestore 是一项异步操作。正如您现在所写的那样,该函数很有可能在文档添加到 Firestore 之前被其容器终止。

要在您的代码完成后正确地向 Cloud Functions 发出信号,请务必将所有来自异步操作的 Promise 链接起来:

exports.findDeck = functions.https.onCall((data: { deckId: string }) => {
    return admin.firestore().collection("messages").add({original: "for me"})
      .then(() => {
        return requestDeck.findDeck(data.deckId)
      });
})

【讨论】:

    猜你喜欢
    • 2018-05-09
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 2021-09-14
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多