未知状态代码:17028 已传递 safety_net_token,但在 Firebase 控制台中未注册匹配的 SHA-256。请确保此应用程序的 packageName/SHA256 对已在 Firebase 控制台中注册。
你好,我在开发应用程序时遇到这个问题,我已尝试修复,这些是我迄今为止所做的步骤,但结果相同:
此外,当我使用添加到控制台的测试电话号码和插入的 otp 代码时,我的应用程序运行良好 但是当尝试使用其他未注册的电话号码验证手机时,它一直显示错误。
我已经检查了 flutter doctor -v 它没有错误 还执行 flutter 命令,结果中没有任何与错误相关的内容。我使用过以下 firebase 插件
firebase_auth:^0.18.4+1 firebase_core:^0.5.3 云火存储:^0.14.4 firebase_admob: firebase_messaging: ^7.0.3 firebase_storage:^5.2.0
您的任何帮助将不胜感激
解决这个问题的方法是: 如果您正确配置了 firebase 和应用程序项目,那么
flutter clean
清理项目依赖项。flutter pub get
再次获取所有依赖项。那么你就可以开始了。这对我有用。
如果以上所有解决方案均已尝试,请按照我的解决方案进行操作。我相信你的问题可能和我的一样。
请检查您的
android/app/build.gradle
文件。
signingConfigs {
if (System.getenv("ANDROID_KEYSTORE_PATH")) {
release {
storeFile file(System.getenv("ANDROID_KEYSTORE_PATH"))
keyAlias System.getenv("ANDROID_KEYSTORE_ALIAS")
keyPassword System.getenv("ANDROID_KEYSTORE_PRIVATE_KEY_PASSWORD")
storePassword System.getenv("ANDROID_KEYSTORE_PASSWORD")
}
} else {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
}
在我的verygood cli 创建的项目中,signingConfigs 配置为仅用于发布版本,因此我自己生成的密钥不用于构建调试apk。所以
来自flutter项目的根目录
cd android/
./gradlew signingReport
收集您的默认 SHA-1 和 SHA-256 密钥并在 firebase 控制台上更新。
flutter clean
并运行项目
不需要更新
google-service.json
文件
就我而言,我发现谷歌已将我的应用程序列入黑名单,因为我尝试使用不同的应用程序密钥使用相同的代码,它起到了作用,但该密钥已被列入黑名单,它仍然无法工作。
感谢您的回答,非常感谢
我也遇到过类似的问题。我的解决方案是:重新生成 my-upload-key.keystore。我希望它会有用!
您必须启用应用程序验证。
你可以查看这个答案 https://stackoverflow.com/a/53513327/14709655
您可以使用此链接 https://firebase.google.com/docs/auth/android/phone-auth#enable-app-verification
我也面临着类似的问题。因此,请在 Firebase 上添加 SHA-256 密钥,而不是 SHA-1
我在测试电话 OTP 身份验证时遇到了同样的错误 E / FirebaseAuth(6429):[SmsRetrieverHelper]短信验证码请求失败:未知状态代码:17028 play_integrity_token中的应用程序信息无效
检查所有配置、SHA1、SHA256、googleservice.json、构建文件后。
我解决了它,
添加用于测试的电话号码:在 Firebase 控制台中,导航到“身份验证”部分 - 登录方法 - 按已启用的电话中的“编辑”按钮,然后找到“用于测试的电话号码”选项。添加您要用于测试的电话号码。
并使用给定的电话号码和 OTP 进行测试。
当您在 Firebase 控制台中指定用于测试的电话号码时,Firebase 允许仅使用这些指定的号码进行身份验证以进行测试。用于测试的任何其他电话号码将导致错误代码 17028,表明由于安全规则,操作被拒绝