【发布时间】:2019-04-01 02:59:40
【问题描述】:
我目前正在通过使用名为“使用 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);
}
【问题讨论】:
-
你有没有 console.log(signupFormData.value),我猜未定义的电子邮件或密码,firebase 无法插入未定义的电子邮件地址
-
@MH-Li 不,电子邮件和密码都没有问题。我可以看到这两个值
-
你能把代码贴在 writeNewUser 函数上吗?那边发生了什么事。并且请执行console.log('userInfo.uid',userInfo.uid) 和console.log('user', user), this.writeNewUser(user); 之前的行
-
@MH-Li 我已经编辑了我的帖子并添加了所需的代码
-
你使用firebase实时数据库还是firestore?