用户身份验证不会保留在 WebView 上

User authentication is not persisted on WebView

我正在创建一个 Android 应用程序,它有一个 WebView,可以访问我使用 Firebase 托管托管的网站。

如果我使用 email/password 凭据登录网站,然后刷新或导航到另一个页面,Firebase 会丢失我的登录信息。

我尝试使用 firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL) 强制 Firebase 保留我的凭据,但它在 WebView 控制台中抛出此错误:

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

作为旁注,我尝试登录其他服务,例如 YouTube 和 Google 以查看是否是浏览器缓存问题,但即使在我刷新页面后,会话仍正常保留、导航或重新打开 Android 应用。

我还使用模拟器 (运行 Android 8.0) 和 phone (Android 6.0) 测试了 Android 应用程序。

有人知道这是怎么回事吗?

您需要在网络视图中启用 DOM 存储,因为 Firebase Auth 依赖网络存储 (localStorage/indexedDB) 来存储 Auth 状态。

webview.getSettings().setDomStorageEnabled(true);