Я пытаюсь написать функцию, которая будет отправлять приветственное письмо при создании пользователя. Я проследовал до этого учебника, в котором говорится, что можно получить доступ к displayName
только что созданному пользователю с помощью user.displayName
, хотя он продолжает возвращать null
для меня. Я понял, что вероятная причина, по которой это происходит (поправьте меня, если я здесь ошибаюсь), заключается в том, что регистрация и настройка displayName пользователя происходит в два отдельных этапа на стороне клиента, и поэтому при запуске onCreate
, естественно, будет user.displayName
значение NULL. Вот мой код на стороне клиента, для справки:
fb.auth().createUserWithEmailAndPassword(payload.email, payload.password).then(user => {
return user.user.updateProfile({ displayName: payload.name, });
}).catch(/* ... */);
Мне нужна облачная функция, которая запускается на user.updateProfile
. Я посмотрел на функцию auth.user().onOperation
(найдено здесь ), но когда я пытаюсь развернуть эту функцию в firebase, я получаю ошибку Error: Functions did not deploy properly.
(полезно, ikr), которая, я думаю, что-то имеет делать с onOperation
функцией private
(поправьте меня, если я ошибаюсь).
Есть ли способ сделать то, что я пытаюсь сделать? Если так, то как? Кроме того, есть ли способ установить displayName
на createUserWithEmailAndPassword
, чтобы я мог продолжать использовать функцию onCreate
?
Вот мой текущий onCreate
код:
exports.sendWelcomeEmail = functions.auth.user().onCreate(user => {
console.log('name:', user.displayName);
});
А вот моя попытка функции onOperation
:
exports.sendWelcomeEmail = functions.auth.user().onOperation(user => {
console.log('user:', user);
}, 'updateProfile');