Firebase 手机身份验证仅在发布模式下不启动 OTP,但即使在为发布模式添加 sha1 后也可以在调试模式下工作
Posted
技术标签:
【中文标题】Firebase 手机身份验证仅在发布模式下不启动 OTP,但即使在为发布模式添加 sha1 后也可以在调试模式下工作【英文标题】:Firebase phone auth not initiating OTP only in release mode but works on Debug mode even after added sha1 for release mode 【发布时间】:2020-12-17 21:54:51 【问题描述】:我如何实施的步骤。
按照建议,我一路实施。在调试模式下非常好。不幸的是,即使我在 firebase 控制台中添加了调试和发布 sha1 键,它也无法在发布模式下工作。
Step 1. 编码部分在这里
final PhoneVerificationCompleted verificationCompleted =
(PhoneAuthCredential user)
successMessage('Your phone number verified successfully!');
_loginNotifier.validate();
;
final PhoneVerificationFailed verificationFailed = (FirebaseAuthException authException)
errorMessage('Phone number verification failed. Code: $authException.code. Message: $authException.message');
print(
'Phone number verification failed. Code: $authException.code. Message: $authException.message');
;
final PhoneCodeAutoRetrievalTimeout codeAutoRetrievalTimeout =
(String verificationId)
this._verificationId = verificationId;
print("time out");
;
firebaseAuth = FirebaseAuth.instance;
firebaseAuth.verifyPhoneNumber(
phoneNumber: '+$_phoneWithCC',
timeout: const Duration(seconds: 60),
verificationCompleted: verificationCompleted,
verificationFailed: verificationFailed,
codeSent: codeSent,
codeAutoRetrievalTimeout: codeAutoRetrievalTimeout);
第 2 步:
添加了所有三个不同的 sha1 密钥,但仍然无法正常工作:(
我遇到的错误:
正如我所说,在调试模式下一切正常 但是在release模式下,启动otp函数后,立即PhineVerificationFailed with null message and null code。
如果还有什么我错过的,请指教。谢谢大家
【问题讨论】:
那么你可以在添加 sha1 后尝试下载新的 google-services.json 并用旧的替换它吗? 是的@KrishBhanushali 我做到了.. 如此连线:( 在发布模式下,我立即被调用验证失败函数。我的错,verificationFailed 函数的数据为 null :( keytool -list -v -keystore PATH_JKS_FILE -alias XXX 这就是我获得发布 SHA1 密钥的方式 -FYI @MuthuS 您是否在清单文件中添加了 Internet 权限?这解决了我在发布模式下的问题。 【参考方案1】:除了SHA1
- 你还需要SHA256
指纹来发布apk。
我在 firebase google 身份验证方面遇到了类似的问题。
您可以将SHA256
指纹添加到firebase 项目控制台并重试吗?
【讨论】:
ok lemme try, between, 为什么失败的消息和代码为空?我的实现是否正确? ibb.co/rvZPgtK 添加 sha-256 发布和调试密钥然后下载 json 文件并重建应用程序然后我得到相同的错误:( 之间,如何获取 SHA1 的发布模式.. keytool -list -v -keystore PATH_JKS_FILE -alias XXX 是否正确? @abijith 在你的 android 文件夹中打开 cmd,然后运行以下命令 - ./gradlew signingReport 链接 - ***.com/questions/51845559/…【参考方案2】:添加 SHA1 后,您必须从 Google Play 重新安装您的应用。
【讨论】:
我也没有发布。我正在尝试直接安装发布 apk。不是从游戏商店。仅供参考@随机先生【参考方案3】:除了添加sha256
和SHA1
,您还需要在Firebase
控制台中添加您的电子邮件。见附图。
【讨论】:
以上是关于Firebase 手机身份验证仅在发布模式下不启动 OTP,但即使在为发布模式添加 sha1 后也可以在调试模式下工作的主要内容,如果未能解决你的问题,请参考以下文章
Firebase 电话身份验证在 APK 发布模式下不起作用
Firebase 手机身份验证 - 应用验证(SafetyNet)
firebase 身份验证(访问被拒绝)“生成发布签名的 APK”