Firebase云功能将不会插入Firestore

时间:2019-07-08 01:35:32

标签: typescript firebase google-cloud-firestore

我正在尝试从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。它什么都不做,或者似乎报告一个错误。

1 个答案:

答案 0 :(得分:0)

将文档添加到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)
      });
})