Моя функция Firebase Cloud не выполняется должным образом - PullRequest
0 голосов
/ 24 марта 2020

Я новичок в облачных функциях Firebase и пытаюсь настроить базу данных, чтобы сделать мое приложение без сервера. Я написал и развернул свою функцию, но похоже, что последний оператор не выполнен или просто не работает


Вот псевдокод:

1- в событии Auth создайте новый документ в users коллекциях

2- Затем возьмите newUserDocumentId и создайте документ в wallets, передавая userId как объект

3- Затем , возьмите newWalletId и обновите user документ, ранее созданный с его помощью

Код успешно создает документы user и wallet, но, похоже, не обновляет user с помощью walletId .

У кого-нибудь есть идеи, как заставить его работать?


Вот код:

const functions = require('firebase-functions')
const admin = require('firebase-admin')
const response = require('express')

// Initialize admin object
admin.initializeApp()

// Database reference
const db = admin.firestore()

// Create 'user' document at authentication
exports.createProfile = functions.auth.user().onCreate((user) => {

    const newUser = {
        email: user.email
    }

    // Create 'user' document
    const addNewUserPromise = db.doc('users/' + user.uid).set(newUser)

    // Create 'wallet' document
    const createNewWalletPromise = addNewUserPromise.then(() => {
        const newWallet = db.collection('wallets').add({
            userId: user.uid
        })
        return newWallet
    })

    // Update 'user' document with new 'walletId'
    const updateUserWalletIdPromise = createNewWalletPromise.then((newWallet) => {
        db.doc('users/' + user.uid).update({
            walletId: newWallet.data().uid
        })

        return {
            userId: user.uid,
            walletId: walletId
        }
    })

    // Handle error(s)
    updateUserWalletIdPromise.catch((error) => {
        response.status(500).send(error)
    })
})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...