Android 使用电话号码身份验证时Firebase异常开发模式不匹配
我一直在发布使用firebase电话号码验证的android应用程序,当该应用程序处于调试模式时,一切正常,但在发布模式下,电话号码验证引发以下异常 com.google.firebase.FirebaseException:发生内部错误。[开发模式不匹配:开发模式请求中给出的非开发模式验证证明。] 代码是Android 使用电话号码身份验证时Firebase异常开发模式不匹配,android,firebase,firebase-authentication,Android,Firebase,Firebase Authentication,我一直在发布使用firebase电话号码验证的android应用程序,当该应用程序处于调试模式时,一切正常,但在发布模式下,电话号码验证引发以下异常 com.google.firebase.FirebaseException:发生内部错误。[开发模式不匹配:开发模式请求中给出的非开发模式验证证明。] 代码是 String phoneNumber = getPhoneNumber(); loginProgress.setVisibility(View.VISIBLE); // send veri
String phoneNumber = getPhoneNumber();
loginProgress.setVisibility(View.VISIBLE);
// send verification sms
PhoneAuthProvider.getInstance().verifyPhoneNumber(
phoneNumber,
60,
TimeUnit.SECONDS,
this,
new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
@Override
public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
// when auto verification happens
// sign-in
mFirebaseAuth.signInWithCredential(phoneAuthCredential)
.addOnSuccessListener(LogInActivity.this, loginListener).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.d("Exception",e.getMessage());
}
});
}
@Override
public void onVerificationFailed(FirebaseException e) {
if (e instanceof FirebaseAuthInvalidCredentialsException) {
// when the user enter invalid number
mPhoneLayout.setError(getString(R.string.wrong_phone_number));
mPhoneLayout.setErrorEnabled(true);
} else if (e instanceof FirebaseTooManyRequestsException) {
// The SMS quota for the project has been exceeded
// when free sms limitation is reached
}
}
@Override
public void onCodeSent(final String verificationId, PhoneAuthProvider.ForceResendingToken forceResendingToken) {
showVerificationDialog(verificationId);
}
}
);
请在Github上检查以下问题。根据最近的评论,问题已得到解决:
我还没有使用最新版本进行测试,但是如果您尝试将
phoneNumber
作为字段之一来修补白名单上的电话号码,firebase会抛出此错误。您是否碰巧使用了白名单上的电话号码?如果是,您尝试登录的用户是否通过admin sdk使用白名单上的电话号码创建?