2016-12-15 3 views
3

Я знаю, как создать пользователя с помощью электронной почты и пароля, но как я могу создать его с именем и фамилией? Это мой код формы электронной почты и парольAngularFire2 Как создатьUser (имя, фамилия, адрес электронной почты, пароль)

registerUser(formData) { 
    if(formData.valid) { 
     this.af.auth.createUser({ 
      email: formData.value.email, 
      password: formData.value.password, 
      }).then((success) => { 
       this.routing.navigateByUrl('/login'); 
      }).catch((error) => { 
       console.log(error); 
      }) 
    } 
} 

Я не могу просто написать

registerUser(formData) { 
    if(formData.valid) { 
     this.af.auth.createUser({ 
      email: formData.value.email, 
      password: formData.value.password, 
      name: formData.value.name, // this is error :(
      surname: formData.value.surname, // this is error :(
      }).then((success) => { 
       this.routing.navigateByUrl('/login'); 
      }).catch((error) => { 
       console.log(error); 
      }) 
    } 
} 

Любые идеи?

ответ

6

'this.af.auth.createUser' принимает только электронное письмо и пароль. Кроме того, вы не можете иметь настраиваемое свойство (имя или фамилия) в встроенном профиле пользователя Firebase.

Единственные доступные свойства:

  • DISPLAYNAME
  • электронной
  • photoURL
  • providerId
  • UID

Таким образом, можно определенно сохранить его в 'DISPLAYNAME', если вы хотели, иначе вам придется использовать t он Firebase Realtime Database для хранения дополнительных пользовательских данных. Я считаю, чтобы установить «DISPLAYNAME» вы должны быть люди подписали в

Для использования DISPLAYNAME вы можете сделать следующее (как только вы подписанным в системе):.

user.updateProfile({ 
    displayName: "Name here" 
}).then(() => { 
    // Update successful 
} 

Чтобы использовать Firebase База данных реального времени:

registerUser(formData) { 
    if(formData.valid) { 
     this.af.auth.createUser({ 
      // Create user 
      email: formData.value.email, 
      password: formData.value.password 
     }).then((user) => { 
      // User created now create the database user 
      return this.af.database.object(`/users/${user.uid}`).update({ 
       name: formData.value.name, 
       surname: formData.value.surname 
      }); 
     }).then(() => { 
      // Success 
      this.routing.navigateByUrl('/login'); 
     }).catch((error) => { 
      // Error 
      console.log(error); 
     }); 
    } 
} 

(Не было возможности проверить приведенный выше код).

+1

большое вам спасибо :) – qwerty1234567