Uncaught Ошибка: Reference.set не удалось: первый аргумент содержит неопределенное в свойстве 'users.undefined.email' - PullRequest
0 голосов
/ 04 ноября 2018

Я хочу сохранить новый узел или пользователей объекта в базе данных firebase, но это дает мне ошибку: первый аргумент содержит неопределенное значение. Я не могу исправить эту ошибку. Кто-нибудь может сказать мне, где я иду не так?

class Authen extends Component {

    login(event) {
        const email = this.refs.email.value;
        const password = this.refs.password.value;
        console.log(email,password);

        const auth = firebase.auth();
        const promise = auth.signInWithEmailAndPassword(email, password);

        promise.catch((e) => {
            var err = e.message;
            console.log("The error is ",err);
            this.setState({err: err});
        });
    }

    signup(event) {
        const email = this.refs.email.value;
        const password = this.refs.password.value;
        console.log(email,password);

        const auth = firebase.auth();
        const promise = auth.createUserWithEmailAndPassword(email,password); 

        promise
        .then(user => {
            var err = "Welcome "+user.email;
            firebase.database().ref('users/'+user.uid).set({
                email: user.email
            });
            console.log("The user is ",user);
            this.setState({err: err});
        });
        promise
        .catch(e => {
            var err = e.message;
            console.log(err);
            this.setState({err: err});
        });
    }

    constructor(props){
        super(props);

        this.state = {
            err: ''
        };
        this.login = this.login.bind(this);
        this.signup = this.signup.bind(this);
    }

    render() {
        return (
            <div>
                <input id="email" ref="email" type="email" placeholder="Enter your email" /><br />
                <input id="pass" ref="password" type="password" placeholder="Enter your password" /><br />
                <p>{this.state.err}</p>
                <button onClick={this.login}>Log In</button>
                <button onClick={this.signup}>Sign Up</button>
            </div>
        );
    }
}

export default Authen;

1 Ответ

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

У меня была похожая ошибка, я думаю, что у firebase есть какая-то другая ошибка и предполагается, что вы проходите через .child, что приводит к ошибке ссылки.

Попробуйте установить адрес электронной почты в качестве строки, а затем повторно введите user.email.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...