gpt4 book ai didi

Firebase 电话身份验证在 Flutter 应用程序中不起作用,无论是在 iOS 模拟器还是在真实设备中

转载 作者:行者123 更新时间:2023-12-03 23:09:09 25 4
gpt4 key购买 nike

我一直在尝试和搜索各种方法来使 Firebase Phone Auth 在我的 flutter 应用程序中工作。 (有一个 open issue 谈论 Firebase Cloud Messaging 和 Firebase Phone Auth 之间的冲突,但我不确定我的问题是否与此有关。我确实使用了 Firebase Cloud Messaging,它工作得非常好。)。

在 iOS 模拟器中 , 每当我打电话 FirebaseAuth.instance.verifyPhoneNumber ,我的应用程序为 reCAPTCHA 工作流程打开一个网页,然后返回到应用程序。然后我在 verificationFailed 中看到如下错误日志打回来。 (根据 Firebase Phone Auth Doc 预计遵循 iOS 模拟器的 reCAPTCHA 流程)

flutter: Instance of 'AuthException'
flutter: {"error":{"code":403,"message":"Requests from this ios client application <empty> are blocked.","errors":[{"message":"Requests from this ios client application <empty> are blocked.","domain":"global","reason":"forbidden"}],"status":"PERMISSION_DENIED"}}

可疑的错误信息正在使用 <empty>作为我的应用程序名称,而不是我的真实应用程序名称(或默认的 Firebase 应用程序名称,即 __FIRAPP_DEFAULT),但我不确定为什么会发生这种情况。

在真实的 iOS 设备中 , 每当我打电话 FirebaseAuth.instance.verifyPhoneNumber ,应用程序调用 verificationFailed再次回调,我收到错误 verifyPhoneNumberError作为代码和 Token mismatch作为错误信息。这在调试版本和发布版本中都会发生。

我正在使用以下 SDK 和库版本。
  • Flutter SDK = 1.12.13+hotfix.5
  • firebase_core = 0.4.3
  • firebase_auth = 0.15.4
  • firebase_messaging = 6.0.9

  • 有没有人能够让 Firebase Auth Phone auth 在 iOS 中工作?我陷入这种不确定状态,因为我似乎无法在线搜索与此相关的任何信息。到目前为止,我已经多次设置 iOS APN、GoogleService-info.plist、Google Cloud Credentials,但都没有成功。 (鉴于 Firebase 云消息传递工作得非常好,我怀疑这是凭据或 APN 设置的问题。)

    最佳答案

    自从我找出根本原因以来,回答我自己的问题。
    在连接到 Firebase 的 Google Cloud 项目中,我能够找到一组由 Firebase 创建的 API key 。
    https://console.cloud.google.com/apis/credentials
    对于您在 Firebase 中定义和创建的每个应用,都会在 API key 部分自动创建一个新的 API key 。就我而言,有一个用于“iOS key (由 Firebase 自动创建)”,另一个用于“Android key (由 Firebase 自动创建)”。
    嗯,默认情况下,它们不施加任何限制,您会在键旁边看到一个黄色三角形。所以我对这些键添加了限制,以便它们只能在我的应用程序中使用。这是通过在每个 API key 详细信息页面中使用相应的 iOS 捆绑包 ID 和 Android 的另一个应用程序 ID 设置应用程序限制来完成的。
    这个限制实际上是 Phone Auth 没有在我的应用程序中工作的原因。一旦我将更改恢复为 None,我就不再遇到 Token mismatchAuthException .
    理想情况下,我应该将这些 API key 限制在我的应用程序中,但似乎我的 Flutter 应用程序无法向谷歌服务证明其身份/appId/bundleId,而且谷歌一直拒绝来自我的应用程序的请求。这一定是我看到 Requests from this ios client application <empty> are blocked. 的原因错误信息。
    目前,一切正常,因为没有限制,但我需要弄清楚为什么我的应用程序及其 ID 关联迟早没有按预期工作,以便我可以添加限制。

    关于Firebase 电话身份验证在 Flutter 应用程序中不起作用,无论是在 iOS 模拟器还是在真实设备中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59963925/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com