2

我正在創建一個具有WebView的Andiod應用程序,該應用程序訪問使用Firebase託管承載我的網站。WebView上不保留用戶身份驗證

如果我使用電子郵件/密碼憑據登錄網站,然後刷新或導航到其他頁面,Firebase會丟失我的登錄信息。

我試圖強迫火力地堡使用firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL)讓我的憑據,但它在的WebView控制檯引發此錯誤:

Uncaught Error: The current environment does not support the specified persistence type.

作爲一個方面說明,我嘗試了其他服務,如YouTube和谷歌登錄以查看它是否是瀏覽器緩存問題,但會話正常保持,即使在我刷新頁面,導航或重新打開Android應用程序之後。

我還使用模擬器(運行Android 8.0)和手機(Android 6.0)測試了Android應用程序。

有人知道這裏發生了什麼嗎?

+0

是否使用'firebase.auth()。onAuthStateChanged'得到驗證狀態? – bojeil

+0

@bojeil是的我是 – wm1sr

+0

你是否禁用網絡視圖中的網絡存儲?是否啓用localStorage? – bojeil

回答

4

您需要在您的webview中啓用DOM存儲,因爲Firebase Auth依賴於Web存儲(localStorage/indexedDB)來存儲Auth狀態。

webview.getSettings().setDomStorageEnabled(true);

+1

謝謝!我希望我能兩次對此讚賞。 – Rbar