Добавьте дополнительное displayName для метода createUserWithEmailAndPassword - PullRequest
1 голос
/ 20 марта 2019

Мне нравится добавлять дополнительные поля, чтобы вставить имя пользователя в базу данных firebase, а затем получить его, но я не знаю, есть ли способ сделать это.вот мой код разметки

<form [formGroup]="registerForm">
        <div class="form-group">
          <label>Name</label>
          <input type="text" formControlName="DisplayName" class="form-control">
        </div>       
        <div class="form-group">
          <label>Email address</label>
          <input type="email" formControlName="email" class="form-control">
        </div>
        <div class="form-group">
          <label>Password</label>
          <input type="password" class="form-control" formControlName="password">
          <label class="error">{{errorMessage}}</label>
          <label class="success">{{successMessage}}</label>
        </div>
        <button type="submit" (click)="tryRegister(registerForm.value)" class="btn btn-primary">Register</button>
      </form>

и вот мой машинописный код для регистрации пользователя в базе данных

tryRegister(value){
     this.authService.doRegister(value)
     .then(res => {
       console.log(res);
       this.errorMessage = "";
       this.successMessage = "Your account has been created";
     }, err => {
       console.log(err);
       this.errorMessage = err.message;
       this.successMessage = "";
     });
   }

doRegister(value) {
    return new Promise<any>((resolve, reject) => {
      firebase.auth().createUserWithEmailAndPassword(value.email, value.password)
      .then(res => {
        resolve(res);
      }, err => reject(err));
    });
  }

Спасибо ...

1 Ответ

3 голосов
/ 20 марта 2019

Вы не можете передавать дополнительные значения функции, для которой требуется только адрес электронной почты и пароль.то, что вы хотите, может быть достигнуто только путем регистрации пользователя в вашей базе данных.В этом случае вы только аутентифицируете своего пользователя в базе данных.попробуйте это:

 this.auth.signUp(this.user.email, this.user.password).then(res => {
    //get data from database
    this.database.doc('tableName/' + res.user.uid).set(data).then(resp => {
})});

Создайте пользователей одновременно, когда вы проходите аутентификацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...