我想添加一个额外的字段来将用户的名字插入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));
});
}
谢谢...
您无法将额外值传递给仅需要电子邮件和密码的函数。您想要的东西只能通过在您的数据库中注册用户来实现。在这种情况下,您只需要对数据库的用户进行身份验证。试试这个 :
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 => {
})});
在进行身份验证时,同时创建用户。