Ошибка типа: Не удается прочитать свойство «администратор» неопределенного

#angular #angularfire

Вопрос:

Я использую аутентификацию firebase в своем проекте angular, я назначаю роль пользователям

вот мой метод подписи

 SignIn(email, password) {
  return this.afAuth.signInWithEmailAndPassword(email, password)
    .then((result) => {
      this.ngZone.run(() => {
        this.router.navigate(['/user'], {
          skipLocationChange: true
        })
      });
      this.SetUserData(result.user);
    }).catch((error) => {
      console.log(`${error}`, '', 'error')
    })

} 
 SetUserData(user) {
  const userRef: AngularFirestoreDocument < any > = this.afs.doc(`users/${user.uid}`);
  const userData: User = {
    uid: user.uid,
    email: user.email,
    emailVerified: user.emailVerified,
    role: {
      admin: user.role.admin,
      member: user.role.member
    }
  }
  return userRef.set(userData, {
    merge: true
  })
} 

Когда пользователь пытается войти в систему, он выдает ошибку типа Ошибка: Не удается прочитать свойство «администратор» неопределенного. Если вы проверите firestore,

 {
  emailVErified: true,
  role: {
    admin: true,
    member: false
  },
  uid:'xxxxxxxxxxxxxxxxxxxxxxxxxx'
} 

Комментарии:

1. Что вы видите, если вы console.log(пользователь) внутри функции setUserData (…)?

2. @DKidwell Ничего не отображается на консоли

3. Это кажется странным, вы не видите, как журналы вашей консоли отображаются в консоли браузера? Попробуйте добавить эту строку в самое начало setUserData(…), console.log(«мой объект пользователя => «, пользователь);

4. Похоже, в firebase есть статическая информация о пользователе, которая не позволяет нам добавлять пользовательские поля,