android - react native firebase 创建用户然后将其他数据添加到实时数据库

标签 android ios react-native firebase-realtime-database

我正在创建一个允许用户自行注册的应用。

使用 react-native 和 firebase 工作,注册并登录。甚至附加数据也存储在实时数据库中(我检查过)。 但是我收到一条消息说“创建用户失败”(这是我设置的消息之一)。

这是我用来创建用户并将额外数据添加到实时数据库的代码:

firebase.auth().createUserWithEmailAndPassword(email, password)
    .then((user) => {
        firebase.database().ref('users/' + user.uid).set({
            firstName: firstName,
            lastName: lastName,
            email: email,
            code: code
        })
    })
    .then(user => loginUserSuccess(dispatch, user))
    .catch((error) => {
        createUserFail(dispatch)
        console.log(error);
    });

我还检查了 android studio 中的调试器(还不知道 ios)并看到以下评论:

TypeError: undefined is not an object (evaluating 'user.uid')

仍然保存了所有内容,但显示了错误消息。我做错了什么?

最佳答案

我知道这已经有一年了,但我遇到了同样的问题,这里有一个更直接的解决方案,适用于遇到同样问题的任何人。创建用户时,用户对象是 Firebase 响应的一部分,而不是响应本身。因此,只需将“res”添加到您的原始代码中,如下所示:

firebase.auth().createUserWithEmailAndPassword(email, password)
.then((res) => {
    firebase.database().ref('users/' + res.user.uid).set({
        firstName: firstName,
        lastName: lastName,
        email: email,
        code: code
    })
})

关于android - react native firebase 创建用户然后将其他数据添加到实时数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47303612/

相关文章:

java - 当编辑文本最大长度达到限制时自动隐藏键盘

ios - 随时间获取两个频率的幅度

ios - 动态缩放 UIButton 中的字体

android - 部署并获利 - 了解 React Native 入门中的第 10 步

java - AES 加密 .Net 到 Android for mobile

android - 图像识别后,我们如何在 vuforia sdk ImageTarget 中显示警报而不是茶壶模型?

ios - Xcode 6.4 只显示只运行 iPhone 6 模拟器

javascript - Undefined 不是一个对象(评估 'this. state.input' )

javascript - 重置主屏幕的导航堆栈(React Navigation 和 React Native)

android - 如何像在 css 中一样在悬停时更改 TextView 中文本的颜色?