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