Я пишу простую облачную функцию, которая должна создавать новый документ в определенной коллекции с определенным именем при создании нового пользователя.Я пробовал различные способы кодирования этого, и я думаю, что придумал то, что я считаю наиболее близким к рабочему коду, поскольку я могу получить его самостоятельно.Это рассматриваемый код:
var functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.emailUserRegistration = functions.auth.user().onCreate((user) => {
admin.firestore().collection('UnauthenticatedUsers').doc(user.email).get()
.then(snapshot => {
var userObject = {
Email: user.email,
First_Name: snapshot.data().First_Name,
Last_Name:snapshot.data().Last_Name,
Password:snapshot.data().Password,
Phone_Number:snapshot.data().Phone_Number,
Address:snapshot.data().Address
};
return admin.firestore().collection('Users').doc(user.uid).set(userObject);
})
.catch(error => {
//Handle the error
console.log('[YAX]',error)
})
});
И возникают следующие проблемы:
1) Возвращаемая функция не определена иОбещание или значение ожидается.Я не понимаю, почему это проблема, потому что метод set возвращает Promise.Согласно различным учебным пособиям, которые я смотрел, как с официального канала Firebase на YouTube, так и от другого независимого программиста YouTubers, если функция возвращает Promise, вы можете просто вернуть функцию.
2) TypeError: Cannot read property 'First_Name'из неопределенного.Я абсолютно не знаю, почему код не сможет прочитать «First_Name», когда я действительно предложу его в качестве возможной переменной после snapshot.data ().в коде Visual Studio.
3) Это не было упомянуто в заголовке, но по какой-то причине, несмотря на две вышеупомянутые ошибки, выполнение функции возвращается со статусом: «ОК».
Я начинающий разработчик Android, и использование Cloud Functions было советом и решением, которое я получил от службы поддержки Firebase, но, задавая этот конкретный вопрос, они мне еще не ответили.Имейте в виду, что я еще больше новичок в Node.js (я никогда ничего не делал в этом до этого проекта), и, кроме того, что я хочу, чтобы мой код работал, я определенно хочу знать, что здесь происходит, или проще.Я хочу понять, что делает код, что он делает, и почему он не делает то, что говорит моя логика.
Если кому-то понадобится больше контекста, я буду более чем рад предоставить его.