Firebase React。如何在React / Webpack中访问我的Auth值?

时间:2016-07-22 21:47:28

标签: reactjs firebase webpack firebase-authentication

我不确定如何撰写此问题,如果您需要更多信息,请与我们联系。

我正在建立一个在线商店网络应用程序。我正在使用Google的Firebase授权API对登录功能进行编码。

它正常登录: user.getToken()。然后功能,我可以在console.log中 displayName 就好了。如果它是一个静态网页,我也可以将它附加到DOM。

在react / webpack中,我想将 displayName 字符串设置为 usernameState 状态。它不起作用,当我在 user.getToken()。然后函数内运行this.setState时,它会触发一个错误,见下文。

我希望能够在网页/反应状态上使用该值。

  constructor(){
    super();
    this.state = {
      usernameState: ""
    };

    firebase.auth().onAuthStateChanged(function(user) {
      if (user) {
        // User is signed in.
        var displayName = user.displayName;
        var email = user.email;
        var emailVerified = user.emailVerified;
        var photoURL = user.photoURL;
        var uid = user.uid;
        var providerData = user.providerData;

        user.getToken().then(function(accessToken) {

          console.log(displayName);

          this.setState({
            usernameState:JSON.stringify(displayName) //cannot read property 'setState' of undefined
          });
        });
      } else {
        // User is signed out.
        console.log("signed out");
      }
    }, function(error) {
      console.log(error);
    });



  };

1 个答案:

答案 0 :(得分:1)

进行绑定或保存真实this

constructor(){
    super();
    this.state = {
      usernameState: ""
    };
    const self=this;
    ...
    self.setState(...)
    ...
}