用户身份验证不会保留在 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);
我正在创建一个 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);