Firebase-Reference.set失败:第一个参数包含属性'users.undefined.uid'

时间:2019-04-01 02:59:41

标签: angular firebase

我目前正在通过使用本书《使用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);
}

1 个答案:

答案 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);