我目前正在使用Firebase和React Native我遇到了一个小问题。
阅读documentation for the: createUserWithEmailAndPassword:
成功创建用户帐户后,该用户也将登录您的应用程序。
我试图按照以下方式处理承诺:
firebase.auth().createUserWithEmailAndPassword(this.state.email, this.state.password)
.then(function(authData){
this.writeUserData(authData.uid);
}).catch(function(error){
console.warn(error)
});
我的writeUserData()
方法:
writeUserData(the_uid) {
console.warn("Writting data ")
var today = new Date();
firebase.database().ref('users/' + authData.uid + '/').set({
name: this.state.name,
birthday: this.state.date,
email: this.state.email,
registered: today
});
}
在函数中,console.warn
永远不会被触发,因此事件未被触发,因为用户自动登录。
问题:由于用户已立即登录,因此.then
尚未执行。
目标:在用户创建之后,您可以在登录前添加用户信息(姓名,生日等)。
答案 0 :(得分:2)
好的,了解你,问题似乎是你在.then
语句中定义函数的方式。你应该使用箭头功能,就像这样 -
firebase.auth().createUserWithEmailAndPassword(this.state.email, this.state.password)
.then((authData) => {
this.writeUserData(authData.uid);
}).catch(function(error){
console.warn(error)
});
答案 1 :(得分:0)
我所理解的是你正试图将(名字,生日等)推送到firebase,以及我使用firebase的小经验,你必须调用{firebase.database()。ref()。child('你的路径')}首先创建一个路径,然后使用push(),例如:
{var ref = firebaseRef.database()。ref()。child('Clients'); var ref = ref.push(this.state.username); }
好吧,我是新手,但这对我有用,希望对你有帮助