我使用react native创建了一个简单的登录应用程序,让用户注册,登录和注销。我的注册函数接受一个用户名,然后在createUser
回调中使用该用户名来生成以uid为键的db条目,并输入用户名作为值。这篇文章的答案是我遵循的结构 - How do you include a username when storing email and password using Firebase (BaaS) in an Android app?
用户登录后,我想获取用户名并显示它,但我无法搞清楚这一点。
这是我目前必须尝试的代码:
var ref = new Firebase("https://myreactapp.firebaseio.com");
module.exports = React.createClass({
getInitialState: function() {
var authData = ref.getAuth();
var user = ref.child("users/" + authData.uid + "/username");
return {
username: user
};
},
这是我注册时代码的外观和数据库的结构。
var self = this;
let ref = new Firebase("https://myreactapp.firebaseio.com");
ref.createUser({
email : this.state.email,
password : this.state.password
}, function(error, authData) {
if (error) {
return this.setState({errorMessage: 'Error creating user'});
} else {
ref.child("users").child(authData.uid).set({
username: self.state.username
});
console.log("Successfully created user account with uid:", authData.uid);
ToastAndroid.show('Account Created', ToastAndroid.SHORT)
return self.props.navigator.pop();
}
});
----------------Not actual code-------------------------------------------------
DB
+users
--<uid>
-username -> value
--<uid>
-username -> value
我尝试登录并收到maximum call stack exceeded
的错误,但我有一种感觉,我会以错误的方式行事。我在网上看过,但我发现的一切都是为了检索要添加,更改或删除的数据。我想要的只是获取此用户名一次。