我目前正在通过使用本书《使用Angular 5和Firebase进行动手全栈开发》来学习Angular。我已经按照这本书学习,但是当我单击“注册”按钮时当前遇到错误。用于注册的电子邮件和密码将显示在“身份验证”标签中。
我知道userInfo.uid没有返回uid,但是我不确定为什么,因为我完全按照本书教给我的东西进行学习。我什至在网上都看过源代码,但似乎不知道为什么。
signup.component.ts
onSignup(signupFormData): void {
this.authService.signup(signupFormData.value.email, signupFormData.value.password).then((userInfo) => {
// Register the new user
const user: User = new User(signupFormData.value.email,
signupFormData.value.name, signupFormData.value.mobile, userInfo.uid, 0, '');
this.writeNewUser(user);
this.navigateToUserProfile();
}).catch((error) => {
this.showError = true;
this.errorMessage = error.message;
});
}
private writeNewUser(user: User): void {
this.userService.addUser(user);
}
user.service.ts
public addUser(user: User): void {
this.fireDb.object(`${USERS_CHILD}/${user.uid}`).set(user);
}
答案 0 :(得分:0)
在addUser函数中,如果您正在使用Firebase实时数据库,则可以这样插入新用户:
const userObject ={"eamil":email, "createDate":'xxxx',....}
admin.database().ref('/users').child(uid).set(userObject)
如果您正在使用Firestore更改代码,例如:
firestore.collection('users').doc(userId).set(userObject);