Firebase不允许同事的Flutter应用进行授权
我在Flutter中开发一个应用,自己也确实遇到过这个问题,最后通过把我的SHA1/SHA256添加到项目中解决。
我也尝试为他做同样的处理,核对包名,执行pub get -> clean,清除Android模拟器中的应用存储,删除并重新下载项目,但都无效。我在想是不是因为他没有在终端自己安装Firestore,但只要Firebase的文件都在项目中,这应该没关系。
编辑:我们也在真机上运行过,使用测试手机号,甚至用他的真实手机号,结果仍然无效。
错误信息:
E/FirebaseAuth(32217): [SmsRetrieverHelper] 发送短信验证码请求失败:未知状态码17028,play_integrity_token中的应用信息无效
D/FirebaseAuth(32217): 在手机号验证失败后调用原始失败回调,针对+1[phonenumber],错误 - 此应用未被授权使用Firebase身份验证。请在Firebase控制台中核对正确的包名、SHA-1和 SHA-256是否已配置。 [ play_integrity_token中的应用信息无效 ]
解决方案
在把他的本地设备的SHA1 / SHA256添加到Firebase应用后,你需要主动从Firebase控制台重新下载google-services.json。
有时Firebase里面对该文件存在一个“缓存”,以致下载时并不会真正刷新。之前我也遇到过这种情况。所以你可能需要在Firebase项目设置中多试几次,确实为该应用重新下载该文件,然后确保新下载的google-services.json中包含你预期的SHA1(它们会作为JSON中某个“key”字段的值出现,全部小写,且这些值之间没有冒号分隔字符对)。
大概你的Git历史diff查看器也可能会显示这个。
请在Flutter项目中android目录的合适位置更新该文件。