firebase 尝试在Android中执行电话身份验证时出现MISSING_CLIENT_IDENTIFIER

vulvrdjw  于 2022-12-19  发布在  Android
关注(0)|答案(4)|浏览(166)

我一直在尝试使用Firebase Auth执行电话身份验证方法,我已确保遵循所有步骤,添加我的软件包名称,使用添加SHA密钥
密钥工具-列表-v-密钥库" %用户配置文件%. android\调试.密钥库"-别名android调试密钥-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;



    }
}
yduiuuwa

yduiuuwa1#

我已经通过反复试验(令人讨厌的未记录)确定,当您禁用了验证码请求(或静默APN请求)时,会发生这种情况,而您试图使用非白名单号码登录。
第一个月
^将此更改回NO,所有操作都将重新工作。

zzwlnbp8

zzwlnbp82#

我也面临着同样的问题,这是因为我尝试和测试了很多次使用相同的设备与我的wifi网络以及移动的网络。所以不知何故,他们阻止了这个客户端ID的请求。只要我尝试在不同的设备与不同的网络一切都很好。而开发只是whitelisting a number,并提供验证码

klsxnrf1

klsxnrf13#

致斯威夫特

  • true:测试电话号码
  • false:真实的电话号码
Auth.auth().settings?.isAppVerificationDisabledForTesting = false

测试电话号码可以在这里设置

z9gpfhce

z9gpfhce4#

当您DON 'T使用在中输入的数字测试和设置Auth.auth().settings?.isAppVerificationDisabledForTesting = true时,会发生此错误。
台阶。
1-您在控制台中输入白名单号码 12125551212 进行测试:

2-然后绕过验证码,您尝试登录并用途:

Auth.auth().settings?.isAppVerificationDisabledForTesting = true // <-- specifically set this to true for testing to skip the captcha

// the phoneNumberTextField.text is 18008881234
PhoneAuthProvider.provider().verifyPhoneNumber(phoneNumberTextField.text!, uiDelegate: nil) { ... }

3-但是,您没有使用在步骤1中提供的白名单编号,而是使用了一个不同的编号:
18008881234(这不是您在步骤1中提供的号码)
简而言之,为了避免此问题在使用Auth.auth().settings?.isAppVerificationDisabledForTesting = true**进行登录测试时,只需使用您在步骤-1中提供的任意数字即可

相关问题