使用 Play Integrity API 时,Firebase 电话身份验证会出现缺少客户端标识符错误

2024-05-23

使用 Firebase 电话身份验证注册/登录时,身份验证流程始终会启动 reCAPTCHA 流程,并在返回应用程序后发出missing client identifier error.

我的设置之前适用于设备验证/安全网络 API。

除了我的 pubspec 中的 firebase 依赖项更新之外,该问题的出现没有任何我所知道的实际更改。

我现在用

firebase_core: ^2.10.0
firebase_auth: ^4.4.2

将依赖关系降级为

firebase_core: 2.8.0 
firebase_auth: 4.2.10

但没有帮助。

到目前为止我还检查了什么:

  • 我(再次)遵循了所有步骤https://firebase.google.com/docs/auth/flutter/phone-auth https://firebase.google.com/docs/auth/flutter/phone-auth
  • 我确保在 Play Store Integrity API 页面上链接正确的 Google Cloud 项目
  • 我用的是右边SHA-1我的应用程序的 Firebase 控制台中的“Play 商店签名”页面(用于应用程序包构建)中的密钥
  • 我确定了正确的SHA-256 certificate fingerprint从“Play 商店签名”页面在 Firebase 控制台中注册
  • 我在 Firebase 控制台的“AppCheck”菜单下注册了正确的应用程序(但可能不相关)
  • 我检查了 Integrity API 管理页面上的“凭据”并确保所有内容均已设置
  • 我尝试在 Android gradle 文件中硬编码最新的 firebase BOM,但没有帮助
  • 我硬编码版本21.1.0Android Firebase Auth 库位于 Android gradle 文件中,但没有帮助
  • 我确保我的 Android Api 密钥不限于任何用于测试的 api
  • 我确保设备上安装了 Chrome
  • 我降级了androidx.browser:browserAndroid gradle 文件中的依赖项1.3.0但这没有帮助
  • 我查了一下google-services.json已是最新

我是否忘记了什么,或者是否有人遇到过类似问题并在切换到 Integrity API 后解决了该问题?

或者换句话说:如果完全相同的设置适用于已激活的设备验证 API,但没有它则不会出现什么问题?


问题已经解决了。

原因是Android应用程序密钥位于https://console.cloud.google.com/apis/credentials https://console.cloud.google.com/apis/credentials仅限于 Android 应用程序:

这导致了 reCAPTCHA 流程中的错误,因为它可能也需要浏览器中的密钥。需要设置为None.

另一件事 - 为什么它首先进入并且仍然进入 reCAPTCHA 流程是 Firebase 端存在一个开放事件:https://status.firebase.google.com/incidents/UY1LTFan8X5oybhphzfV https://status.firebase.google.com/incidents/UY1LTFan8X5oybhphzfV

目前,Integrity API 未按预期工作,这也是代码与 Safety Net API 配合使用的原因 - 至少只要它不必进入后备/reCAPTCHA 流程即可。

UPDATE:截至 2023 年 5 月 1 日,此问题现已完全解决,Play Integrity API 以及电话身份验证现在可以按预期工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Play Integrity API 时,Firebase 电话身份验证会出现缺少客户端标识符错误 的相关文章

随机推荐

  • 查找日期时间与今天日期匹配的记录 - Ruby on Rails

    我有一个交易表 需要查找日期与今天的日期匹配的记录 从 Rails 控制台 我需要匹配的日期字段如下所示 我已经分配了一条记录来进行测试 ruby 1 9 2 p0 gt deal start gt Tue 10 May 2011 00 0
  • 检查浏览器空闲的替代方法

    我有一个简单的网络信息亭 在鼠标未使用 jQuery 移动 30 秒后显示用户操作提示 var i null body wrap mousemove function clearTimeout i overlay fadeOut i set
  • 根据用户名获取广告详细信息

    我有一个代码可以从 AD 检索用户的详细信息 例如电子邮件地址 电话号码等 我当前使用的代码是 Set objSysInfo CreateObject ADSystemInfo strUser objSysInfo UserName msg
  • Java - 从 XML 文件读取注释

    我必须从 XML 文件中提取注释 我找不到使用 JDOM 或其他东西来让它们使用的方法 目前我使用 Regex 和 FileReader 但我不认为这是正确的方法 您可以使用 JDOM 之类的东西从 XML 文件中获取注释吗 或者它仅限于元
  • 无法使用 findViewById() 找到视图

    我找不到TextView通过致电findViewById 即使 ID 确实存在 OtherActivity public class OtherActivity extends Activity Override protected voi
  • 2 使用我的代码在数组中查询

    我使用滑块来显示我的 WordPress 精选文章 它选择一个自定义类别并返回一定数量的帖子 如何将显示的第一篇帖子设为自定义帖子 我可以直接在滑块代码中添加特定帖子的 ID吗使该帖子首先出现 然后是原始查询返回的其他内容 例如 在页面上
  • Android模拟器中的网络访问

    我试图通过我的 Android 应用程序访问互联网 但我既成功又失败 我在构建应用程序时启动模拟器 并且应用程序安装得很好 我可以使用浏览器访问互联网 但是 当我尝试这个小代码片段时 InetAddress inet try inet In
  • collect_list() 是否保持行的相对顺序?

    想象一下我有以下 DataFrame df id featureName featureValue id1 a 3 id1 b 4 id2 a 2 id2 c 5 id3 d 9 想象一下我运行 df groupBy id agg coll
  • 是否需要关闭没有引用它们的文件?

    作为一个完全的编程初学者 我试图理解打开和关闭文件的基本概念 我正在做的一项练习是创建一个脚本 允许我将内容从一个文件复制到另一个文件 in file open from file indata in file read out file
  • Karaf / Maven - 无法解决:缺少需求 osgi.wiring.package

    我无法在 Karaf 版本 3 0 1 中启动捆绑包 该包是使用 Maven 构建的并导入gson http mvnrepository com artifact com google code gson gson 2 3 1 我按照要求将
  • 打字稿和布尔过滤器

    考虑以下code https www typescriptlang org play src var 20a 3A 20 number 20 7C 20null 5B 5D 20 3D 20 5B0 2C 201 2C 202 2C 203
  • FirebaseAnimatedList 实时更改内容

    我想知道如何使用新查询 更改路径的新内容来重建 FirebaseAnimatedList new Flexible child new FirebaseAnimatedList query query sort DataSnapshot a
  • 索引在 NOT IN 或 <> 子句中起作用吗?

    我读过 至少 Oracle 数据库中的普通索引基本上是 B 树结构 因此存储处理适当根节点的记录 小于 根的记录被迭代地存储在树的左侧部分 而 大于 根的记录被存储在右侧部分 正是这种存储方法有助于通过树遍历实现更快的扫描 因为深度和广度都
  • Ubuntu systemd 自定义服务因 python 脚本而失败

    希望获得有关 Ubuntu 中的 systemd 守护进程服务的一些帮助 我写了一个 python 脚本来禁用 Dell XPS 上的触摸屏 这更像是一个问题 而不是一个有用的功能 该脚本可以工作 但我不想一直启动它 这就是为什么我想到编写
  • 由于 UTFDataFormatException 导致 Spark 中的任务无法序列化:编码字符串太长

    我在 Yarn 上运行 Spark 应用程序时遇到一些问题 我有非常广泛的集成测试 运行时没有任何问题 但是当我在 YARN 上运行应用程序时 它将抛出以下错误 17 01 06 11 22 23 ERROR yarn Applicatio
  • Excel:COUNTIF 函数将“小于”字符视为运算符

    预读说明 我使用的是 LibreOffice 而不是 Excel 但大多数功能应该适用于两者 我正在制作一个电子表格 其中有大量数据 对于每个属性 例如员工数量或姓名 我需要一个函数来计算包含每个不同值的行数 我已经提取了不同的值 现在我使
  • 保证复制省略是否适用于函数参数?

    如果我理解正确的话 从 C 17 开始 这段代码现在要求不进行任何复制 Foo myfunc void return Foo auto foo myfunc no copy 函数参数也是如此吗 下面的代码中的副本会被优化掉吗 Foo myf
  • “google cloud run”将 HOME 更改为 CMD 的 /home,其中 RUN 使用 /root

    我正在做的是在 Dockerfile 中的 RUN 命令中设置 sbcl 和 Quicklisp 然后使用 CMD 加载我的自定义代码 当我在本地计算机上使用 Docker 运行它时 一切都很好 但是当我将其推送到 google run 时
  • JOGL 异常 - 在 java.library.path 中找不到gluegen-rt

    线程 main java lang UnsatisfiedLinkError中出现异常 java library path中没有gluegen rt 在 java lang ClassLoader loadLibrary ClassLoad
  • 使用 Play Integrity API 时,Firebase 电话身份验证会出现缺少客户端标识符错误

    使用 Firebase 电话身份验证注册 登录时 身份验证流程始终会启动 reCAPTCHA 流程 并在返回应用程序后发出missing client identifier error 我的设置之前适用于设备验证 安全网络 API 除了我的