我目前正在使用 Firebase 和 React Native,我遇到了一个小问题。
阅读以下文档: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
。
目标:能够在用户创建后添加用户信息(姓名、生日等(,然后再登录。
好的理解你,问题似乎是你如何在.then
语句中定义一个函数。你应该使用箭头函数,就像这样 -
firebase.auth().createUserWithEmailAndPassword(this.state.email, this.state.password)
.then((authData) => {
this.writeUserData(authData.uid);
}).catch(function(error){
console.warn(error)
});
我所理解的是,您正在尝试将(姓名,生日等(推送到Firebase,好吧,根据我使用Firebase的少量经验,您必须首先调用{firebase.database((.ref((.child('your path'(}来创建路径,然后使用push((,例如:
{ var ref = firebaseRef.database((.ref((.child('Clients'(; var ref = ref.push(this.state.username(;}
好吧,我是新手,但这对我有用,希望对您有所帮助