Firebase - Reference.set не удалось: первый аргумент содержит неопределенное значение в свойстве users.undefined.uid - PullRequest
0 голосов
/ 01 апреля 2019

В настоящее время я изучаю Angular, используя эту книгу под названием «Практическая разработка полного стека с Angular 5 и Firebase». Я проследил за книгой, но в настоящее время сталкиваюсь с ошибкой, когда нажимаю кнопку регистрации. Однакоадрес электронной почты и пароль, использованные для регистрации, будут отображаться на вкладке «Аутентификация».

Я знаю, что 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);
}

пользователя.service.ts

public addUser(user: User): void {
    this.fireDb.object(`${USERS_CHILD}/${user.uid}`).set(user);
}

1 Ответ

0 голосов
/ 01 апреля 2019

В функции addUser. Если вы используете базу данных Firebase в реальном времени, вы можете вставить нового пользователя следующим образом:

const userObject ={"eamil":email, "createDate":'xxxx',....}
admin.database().ref('/users').child(uid).set(userObject)

Если вы используете код изменения firestore, например:

firestore.collection('users').doc(userId).set(userObject);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...