Делая
var name = snapshot.ref.parent.child('name');
Вы фактически присваиваете Reference
переменной name
, поскольку метод child()
возвращает ссылку.
Итак, вам нужно запросить значение по этой ссылке, выполнив
exports.onUserCreated = functions.database.ref('/user/{pushId}/email')
.onCreate((snapshot, context ) => {
// Do something when a new user is created
var email = snapshot.val();
var nameRef = snapshot.ref.parent.child('name'); //Note that variable name was changed to nameRef, to be more meaningful
return nameRef.once('value')
.then(function(dataSnapshot) {
return sendWelcomeEmaill(email, dataSnapshot.val());
});
});
В случае, если вы одновременно задаете имя и адрес электронной почты пользователя , может быть проще запустить облачную функцию на уровне узла user
, а не на уровне email
один, как:
exports.onUserCreated = functions.database.ref('/user/{pushId}')
.onCreate((snapshot, context ) => {
// Do something when a new user is created
var email = snapshot.val().email;
var name = snapshot.val().name;
......