Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用Firebase中的PhoneAuthProvider检测sms代码是否发送到其他设备_Android_Firebase_Firebase Authentication - Fatal编程技术网

Android 如何使用Firebase中的PhoneAuthProvider检测sms代码是否发送到其他设备

Android 如何使用Firebase中的PhoneAuthProvider检测sms代码是否发送到其他设备,android,firebase,firebase-authentication,Android,Firebase,Firebase Authentication,我在firebase中使用PhoneAuthProvider,我的用户在不小心键入设备中不存在的另一个电话号码时遇到问题。发生的事情是,短信代码被发送到该电话号码,但我没有办法检测到,以触发必要的行动 @Override public void onVerificationCompleted(PhoneAuthCredential credential) { try { Toast.makeText( Registra

我在firebase中使用PhoneAuthProvider,我的用户在不小心键入设备中不存在的另一个电话号码时遇到问题。发生的事情是,短信代码被发送到该电话号码,但我没有办法检测到,以触发必要的行动

@Override
        public void onVerificationCompleted(PhoneAuthCredential credential) {


            try {

                Toast.makeText( RegistrationStepOne.this, "Phone number verified successfully!", Toast.LENGTH_SHORT ).show();

                Intent step1=new Intent(RegistrationStepOne.this,RegistrationStepTwo.class);
                Bundle extraMain = new Bundle();
                extraMain.putString( "phoneNumber", getPhoneNo.getText().toString());
                step1.putExtras( extraMain );
                startActivity(step1);
                RegistrationStepOne.this.finish();


            } catch (NullPointerException b) {
                b.printStackTrace();
                passDialog.dismiss();
            }


        }
上面的方法无法检测到,下面的方法也无法检测到

@Override
        public void onVerificationFailed(FirebaseException e) {
            Log.d( "FEL", e.getLocalizedMessage() );

            verifyCode.setText( "Resend Request" );

            if (e instanceof FirebaseAuthInvalidCredentialsException) {

            } else if (e instanceof FirebaseTooManyRequestsException) {
                Toast.makeText( RegistrationStepOne.this, "Too Many Requests Sent...Please try again later", Toast.LENGTH_SHORT ).show();
            }

        }

        @Override
        public void onCodeSent(String verificationId, PhoneAuthProvider.ForceResendingToken token) {

            Log.d( TAG, "onCodeSent:" + verificationId );
            mVerificationId = verificationId;
            mResendToken = token;

        }

如果另一台设备接收到代码,我应该在何处以及如何检测验证未成功

我认为这是不可能的。你可以设置一个祝酒词或什么,说短信发送到电话号码。如果不是这个号码,请再试一次。除此之外,我不认为你能做很多事情。当没有任何方法可以检测到这种情况时,我应该在哪里设置吐司?我会这样做,用户输入电话号码,我猜他按下按钮发送短信。当按下按钮而不是调用firebase方法时,制作toast,以便用户可以再次读取电话号码。如果电话号码正常,用户将收到信息,如果没有,用户将看到错误的电话号码,并且应该可以选择将短信再次发送到其他号码。这可以解决问题,但不够稳定,仍然容易出现人为错误。无论如何,在firebase解决这个问题之前,我现在会使用它。99%的应用程序都容易出现人为错误,没有办法让它成为防猴子的。。。当你第一次输入你的电话号码时,甚至facebook也会出现这种错误