2017-10-13 135 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