已发布的应用程序显示“无法在没有验证证明、会话信息、临时证明或注册 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 应用程序显示应用程序包名称
iAd 和 AdMob 广告未在已发布的 iPhone 应用程序中显示
AdWhirl (AdMob, iAd) 广告未在已发布的 iPhone 应用程序中显示