已发布的应用程序显示“无法在没有验证证明、会话信息、临时证明或注册 ID 的情况下创建 PhoneAuthCredential。”

Posted

技术标签:

【中文标题】已发布的应用程序显示“无法在没有验证证明、会话信息、临时证明或注册 ID 的情况下创建 PhoneAuthCredential。”【英文标题】:Published app shows "Cannot create PhoneAuthCredential without either verificationProof, sessionInfo, temporary proof, or enrollment ID. " 【发布时间】:2021-08-05 20:40:45 【问题描述】:

通过 android studio 安装应用时,Firebase 手机身份验证可以完美运行。 我已签入包含在播放控制台中的 SHA(有 3 对 SHA1 和 SHA256 密钥)。

当我使用从 Play 商店安装的应用程序时。它发送 OTP 但无法验证它。 这是错误

java.lang.IllegalArgumentException:如果没有验证证明、会话信息、临时证明或注册 ID,则无法创建 PhoneAuthCredential。

我确信代码没有问题,因为它可以在 android studio 模式下完美运行。但仍然..这是我的代码。 获取一次性密码

val options = PhoneAuthOptions.newBuilder(mAuth)
    .setPhoneNumber("+91$s") // Phone number to verify
    .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
    .setActivity(this) // Activity (for callback binding)
    .setCallbacks(mCallBack) // OnVerificationStateChangedCallbacks
    .build()
    try Log.d("otpE", PhoneAuthProvider.verifyPhoneNumber(options).toString()) 
    catch(err:Exception) 
        Log.d("OTP ERROR", err.toString())
    

验证一次性密码

mAuth.signInWithCredential(credential)
                .addOnCompleteListener(object : OnCompleteListener<AuthResult?> 
                    override fun onComplete(task: Task<AuthResult?>) 
                        if (task.isSuccessful) 
... 


【问题讨论】:

【参考方案1】:

您还必须在 Playstore 控制台上添加您的 SHA1 密钥。

【讨论】:

以上是关于已发布的应用程序显示“无法在没有验证证明、会话信息、临时证明或注册 ID 的情况下创建 PhoneAuthCredential。”的主要内容,如果未能解决你的问题,请参考以下文章

如何避免已发布的 android 应用程序显示应用程序包名称

已发布的 ASP.NET MVC 应用程序中未显示引导图标

iAd 和 AdMob 广告未在已发布的 iPhone 应用程序中显示

AdWhirl (AdMob, iAd) 广告未在已发布的 iPhone 应用程序中显示

AdWhirl (AdMob, iAd) 广告未在已发布的 iPhone 应用程序中显示

已发布应用但 Play 商店未在任何设备上显示更新