Firebase 由于缺少初始状态而无法处理请求

问题描述 投票:0回答:5

我正在尝试使用来自

firebase
的电话身份验证,但现在收到此错误。

由于缺少初始状态而无法处理请求。如果浏览器会话存储无法访问或意外清除,则可能会发生这种情况。

这在一周前还有效,现在不再有效。

android firebase flutter dart mobile
5个回答
16
投票

我通过使用 SHA2 向 SafetyNet 注册我的应用程序解决了这个问题。为此,请按照以下步骤操作:

  1. 获取您的 SHA2。如果您不知道如何获取此内容,请按照本教程操作: https://www.youtube.com/watch?v=kLaNnuoqnmA 笔记。此 YouTube 链接适用于 SHA1,但如果您注意的话,您会发现此处将显示 SHA2。
  2. 然后转到 Firebase 控制台,转到“项目设置”>“应用程序检查”。您会注意到您的应用程序是“未注册”。单击此处注册您的应用程序。
  3. 输入您复制的 SHA2 并接受下面的一些条款,然后单击“保存”。您会注意到带有绿色复选图标的“已注册”。

顺便说一句,此错误发生在我的一台设备上,但没有发生在另一台设备上。我也搜索了这个错误,但没有人解决这个问题,包括此页面。当我发送电话号码时获取 OTP 时,我使用 firebase 进行电话身份验证时会发生这种情况。如果您没有 SafetyNet,该应用程序会尝试将您重定向到浏览器以进行 Recaptcha 验证。因此,没有 SafetyNet 将导致您的应用程序始终重定向至 Recaptcha,这有时会导致错误。因此,要解决此问题,请向 Safety Net 注册您的应用程序。要了解这一点,请阅读本文档。 https://firebase.google.com/docs/auth/android/phone-auth?authuser=0 关注 2. 启用应用程序验证,您会发现 recaptcha 只是 SafetyNet 的替代方案。


3
投票

我在使用 iPhone 网络应用程序时遇到了这个问题。我进入“设置”->“Safari”并禁用“防止跨站点跟踪”。


3
投票

Ionic/Angular/Capacitor 应用程序上也有它。即 Android 和 Chrome。使用 Microsoft 登录进行 Firebase 身份验证。

所以我已经清除了Android设备上的所有chrome浏览器数据,然后就没有问题了。即现在工作正常。

更多解决方法:https://github.com/firebase/firebase-js-sdk/issues/4256


3
投票

我遇到了这个错误,这就是我修复它的方法!

  • 转到 Firebase 的项目控制台
  • 展开
    Build
    部分并单击应用程序检查
  • 您会注意到您的应用程序未在
    SafetyNet
  • 上注册
  • Firebase 将自动检测您的 SHA-256 证书
  • 您必须接受一些条款,然后确认

注意:请注意,
SafetyNet
已弃用,很快就会被删除,您应该激活
Play Integrity

快乐编码!


0
投票

如果您在 Firefox 中看到此情况,则可能是此处描述的问题: https://firebase.google.com/docs/auth/android/phone-auth?authuser=0#troubleshooting

当 reCAPTCHA 流程成功完成但未将用户重定向回本机应用程序时,可能会发生这种情况。如果发生这种情况,用户将被重定向到后备 URL

PROJECT_ID.firebaseapp.com/__/auth/handler
。在 Firefox 浏览器上,默认情况下禁用打开本机应用程序链接。如果您在 Firefox 上看到上述错误,请按照设置 Firefox for Android 以在本机应用程序中打开链接中的步骤启用打开应用程序链接。

© www.soinside.com 2019 - 2024. All rights reserved.