将Extra displayName添加到createUserWithEmailAndPassword方法

问题描述 投票:1回答:1

我想添加一个额外的字段来将用户的名字插入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));
    });
  }

谢谢...

angular firebase firebase-authentication
1个回答
3
投票

您无法将额外值传递给仅需要电子邮件和密码的函数。您想要的东西只能通过在您的数据库中注册用户来实现。在这种情况下,您只需要对数据库的用户进行身份验证。试试这个 :

 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 => {
})});

在进行身份验证时,同时创建用户。

© www.soinside.com 2019 - 2024. All rights reserved.