在电子邮件/密码登录后从Firebase获取用户名[React Native]

时间:2016-07-30 14:00:50

标签: reactjs firebase react-native

我使用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的错误,但我有一种感觉,我会以错误的方式行事。我在网上看过,但我发现的一切都是为了检索要添加,更改或删除的数据。我想要的只是获取此用户名一次。

0 个答案:

没有答案