Неопределенная ошибка в простой функции аутентификации firebase - PullRequest
0 голосов
/ 06 июня 2018

Странная проблема, у меня есть функция, которая запускается Firebase newUser auth, если пользователь использует провайдера Google или Facebook, функция работает, но если при регистрации по электронной почте / паролю функция возвращает неопределенную ошибку.чего мне здесь не хватает?

Код функции:

  exports.newUser = functions.auth.user().onCreate((user) => {
    const docRef = admin.firestore().collection('Users').doc(user.uid)

    return docRef.set({
        email: user.email,
        name: '',
        photo: '',
        signupDate: admin.firestore.FieldValue.serverTimestamp()
      },{merge: true});
  });

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Поле user.email появляется под провайдером, а не как в примере с Firebase, прямо под пользователем.

вот как это должно выглядеть:

var email = user.email; // The email of the user.
if (email == undefined) {
  for (var provider of user.providerData) {
    if (provider.email) {
      email = provider.email;
      break;
    }
  }
}

 return docRef.set({
      email: email,
      name: '',
      photo: '',
      signupDate: admin.firestore.FieldValue.serverTimestamp()
    },{merge: true});
});
0 голосов
/ 06 июня 2018

Документация для свойства email UserRecord предполагает, что оно не всегда доступно.Итак, вы должны проверить это в своем коде.

...