Я новичок в облачных функциях 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)
})
})