gpt4 book ai didi

javascript - 如何正确从 firebase 访问 uid 以将记录添加到另一个数据库中?

转载 作者:行者123 更新时间:2023-12-02 22:16:40 25 4
gpt4 key购买 nike

我正在尝试将记录添加到 firebase 中的实时数据库中。我运行用户身份验证,然后想要插入另一个数据记录,将 uid 传递给另一个数据库中的新用户。以下是调用的一部分:

    state = { email: '', password: '', errorMessage: null, uid: null }


handleSignUp = () => {
firebase.auth()
.createUserWithEmailAndPassword(this.state.email, this.state.password)
.then((user)=>{
//console.log('uid',user.user.uid)
this.setState({ uid: user.user.uid })
})
.then(() => this.props.navigation.navigate('Profile'))
.catch(error => this.setState({ errorMessage: error.message }))

//insert new record into our realtime database
this.addUser(this.state.uid,this.state.email,1000); //users are given 1000 in rewards to start

}


// when a user signs up they will have a record added to the user table in realtime database
addUser = (id,email,rewards) => {
console.log(id)
Firebase.database().ref('UsersList/').push({
id,
email,
rewards
}).then((data)=>{
//success callback
console.log('data ' , data)
}).catch((error)=>{
//error callback
console.log('error ' , error)
})
}

它运行并添加一个用户,但 uid 为空。电子邮件和姓名来自表单中的文本输入。this.state.uid 显示 null 我认为这是因为我没有以异步方式处理这个问题。我该如何修复它才能运行?

最佳答案

也许这就是您想要的?

this.addUser(user.user.uid, this.state.email, 1000);

我相信 setState 不会立即生效 - 它将异步完成其工作。如果您想传递该 uid,只需直接传递已知值即可。

关于javascript - 如何正确从 firebase 访问 uid 以将记录添加到另一个数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59366728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com