我一直在尝试使用Firebase Auth进行手机身份验证方法,我已确保遵循所有步骤,添加我的包名称,使用
添加SHA密钥keytool -list -v -keystore“%USERPROFILE%.android \ debug.keystore” -alias androiddebugkey -storepass android -keypass android
然后添加所有依赖项,并将json文件包含到我的项目中
现在我以 + CountryCodeXXXXX 格式发送我的电话号码,出于某种原因,它在PhoneAuthProvider.OnVerificationStateChangedCallbacks()
方法中为我提供了 MISSING_CLIENT_IDENTIFIER ,任何输入会有所帮助
这是我的代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.edit);
send = (Button) findViewById(R.id.btnSend);
send.setOnClickListener(this);
mCallbacks= new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
@Override
public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
Toast.makeText(getBaseContext(),"Verification Successfull",Toast.LENGTH_SHORT).show();
}
@Override
public void onVerificationFailed(FirebaseException e) {
Toast.makeText(getBaseContext(),"Verification Failed "+e,Toast.LENGTH_LONG).show();
}
};
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btnSend:
String temp = editText.getText().toString();
Toast.makeText(getBaseContext(),temp,Toast.LENGTH_SHORT).show();
PhoneAuthProvider.getInstance().verifyPhoneNumber(
temp, // Phone number to verify
60, // Timeout duration
TimeUnit.SECONDS, // Unit of timeout
this, // Activity (for callback binding)
mCallbacks);
break;
}
}
答案 0 :(得分:1)
我已经通过反复试验(令人惊讶地未记录)确定,当您禁用验证码请求(或无提示APN请求)firebase用于验证应用程序环境并且您尝试使用非白色登录时,会发生这种情况列出的号码。
fbAuth.settings.appVerificationDisabledForTesting = YES;
^将其更改回NO,即可再次使用。
答案 1 :(得分:0)
我也遇到了同样的问题,这是因为我使用同一个设备通过wifi网络以及移动网络进行了多次尝试和测试。因此,他们以某种方式阻止了对此客户ID的请求。一旦我在具有不同网络的其他设备中尝试过,一切都很好。仅开发whitelisting a number并为其提供验证代码