2017-10-13 100 views
1

我正在使用Firebase电子邮件+ pw登录我的React Native应用程序,但在应用程序关闭并重新打开后,登录似乎不会持续。我在文档中读到缺省值是持久的,所以我不确定它为什么不这样做?反应原生中的Firebase身份验证持久性

我使用componentWillMount如下:

this.state.dbh.auth().onAuthStateChanged(function(user) { 
     if (user) { 
      this.state = { 
       user: user 
      } 
     } 

我还使用世博会发展 - 这将有持续登录的效果?

+0

我有同样的问题。我尝试了'setPersistence',但Firebase SDK只接受'firebase.auth.Auth.Persistence.NONE',否则返回错误'{code:“auth/unsupported-persistence-type”,消息:“当前环境不支持指定的持久性类型。“}'。 – phusick

+0

上述内容适用于世博会和香草反应原生应用程序。因此世博会不可能是罪魁祸首。 – phusick

回答

3

这是一个在Firebase v4.5.1中引入的回归,如here所述。

解决方案:

  1. 降级到火力地堡V4.5.0
  2. 重新启动世博会与npm start -- --reset-cache

编辑:

该问题已在Firebase v4.5.2

  1. 升级到火力地堡v4.5.2
  2. 变化火力地堡进口

    // from 
    import * as firebase from 'firebase/app'; 
    import 'firebase/auth'; 
    
    // to 
    import firebase from 'firebase'; 
    

如上所述here

+1

谢谢!我还使用以下方法将我的登录/登录方法打包: firebase.auth()。setPersistence(firebase.auth.Auth.Persistence.LOCAL).then(()=> {//登录/登录} – McD