Облачная функция Firebase не будет вставлена ​​в пожарный магазин - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь добавить документ из облачной функции 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

Я также пытался следовать документам Firestore для Node.js и использовать set вместо add. Ничего из этого не делает или, кажется, сообщает об ошибке.

1 Ответ

0 голосов
/ 08 июля 2019

Добавление документа в Cloud Firestore является асинхронной операцией.Как вы уже написали, есть большая вероятность того, что функция будет завершена контейнером до того, как документ будет добавлен в Firestore.

Чтобы правильно сигнализировать облачным функциям, когда ваш код готов, обязательно выполните цепочкувсе обещания от асинхронных операций:

exports.findDeck = functions.https.onCall((data: { deckId: string }) => {
    return admin.firestore().collection("messages").add({original: "for me"})
      .then(() => {
        return requestDeck.findDeck(data.deckId)
      });
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...