Я создал функцию firebase, которая прослушивает событие onCreate, однако DocumentSnapshot.data () возвращает пустой.
Код функции:
exports.createClientAccount = functions.firestore
.document('/userProfile/{userId}/clientList/{clientId}')
.onCreate(async (snap, context) => {
console.log('****snap.data(): ', snap.data()); //Showing Empty from the console.
return admin
.auth()
.createUser({
uid: context.params.clientId,
email: snap.data().email,
password: '123456789',
displayName: snap.data().fullName,
})
.then(userRecord => {
return admin
.database()
.ref(`/userProfile/${userRecord.uid}`)
.set({
fullName: userRecord.displayName, //ERROR here: Reference.set failed: First argument contains undefined
email: userRecord.email,
coachId: context.params.userId,
admin: false,
startingWeight: snap.data().startingWeight,
});
})
.catch(error => {
console.error('****Error creating new user',error);
});
});
Документ созданв базе данных firebase под
/userProfile/{userId}/clientList/{clientId}
clientId-документом, созданным в базе данных
Согласно документации, onCreate прослушивает, когда создается новый документ, и возвращает снимокданные, созданные через интерфейс DocumentSnapshot.Тем не менее, я проверил из консоли, что snap.data () пуст.Я не понимаю, почему он пуст, если документ успешно создан в базе данных.
изображение, показывающее ошибку, возвращаемую функциями при создании userProfile
Из кода функции return admin.auth.createUser({})
создает пользователя как анонимного из-за snap.data ().адрес электронной почты не определен, но он должен создавать не анонимного пользователя.