Как протестировать номера телефонов, внесенные в белый список Firebase - PullRequest
0 голосов
/ 23 марта 2019

Из документации Я понимаю, что не могу добавить реальные номера телефонов в свой белый список:

Аутентификация с помощью Firebase не позволяет вносить в белый список существующие номера телефонов, используемые реальнымипользователи.

Я не хочу регистрировать свои реальные устройства, как это делают обычные пользователи, я хочу их протестировать, но я не понимаю, как я могу добавить эти устройства в свой белый список, если они содержатреальные телефонные номера.

Это мой код для проверки подлинности телефона (все работает, но я не знаю, как реализовать часть белого списка):

    private void sendVerificationCode() {
    //THE USER PHONE NUMBER THAT HE ENTERED
    if (phoneNumberEditText.getText().toString().length() == 0) {
        Toast.makeText(this, "נא למלא את השדה", Toast.LENGTH_SHORT).show();
    } else {
        String mPhoneNumber = phoneNumberEditText.getText().toString();

        //checks the input of the edit text
        isEditTextLegit(mPhoneNumber.isEmpty(), "נא למלא מספר פלאפון", phoneNumberEditText);
        isEditTextLegit(mPhoneNumber.length() < 10, "מספר טלפון לא תקני", phoneNumberEditText);


        //creating an object for the callbacks from the sms verification code
        PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
            //when the code was sent
            @Override
            public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken forceResendingToken) {
                super.onCodeSent(s, forceResendingToken);
                Toast.makeText(LogingWithPhoneActivity.this, "sent" + forceResendingToken, Toast.LENGTH_SHORT).show();
                System.out.println(forceResendingToken + "9708530250  token");
                //saving the received sent
                codeSent = s;
            }

            @Override
            public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
                System.out.println(phoneAuthCredential + "9708530250    credential");
            }

            @Override
            public void onVerificationFailed(FirebaseException e) {
                if (e instanceof FirebaseAuthInvalidCredentialsException) {
                    Toast.makeText(LogingWithPhoneActivity.this, "credential error", Toast.LENGTH_SHORT).show();
                    System.out.println((e.getMessage() + "firebase error" + "1"));
                    // ...
                } else if (e instanceof FirebaseTooManyRequestsException) {
                    Toast.makeText(LogingWithPhoneActivity.this, "too many requests error", Toast.LENGTH_SHORT).show();
                    System.out.println(e.getMessage() + "firebase error" + "2");
                } else if (e != null) {
                    Toast.makeText(LogingWithPhoneActivity.this, "firebase error", Toast.LENGTH_SHORT).show();
                    System.out.println(e.getMessage() + "firebase error" + "3");


                }
            }
        };

        PhoneAuthProvider.getInstance().verifyPhoneNumber(
                mPhoneNumber,        // Phone number to verify
                60,                 // Timeout duration
                TimeUnit.SECONDS,   // Unit of timeout
                this,
                mCallbacks// Activity (for callback binding)
        );        // OnVerificationStateChangedCallbacks

    }

}


//create a credential and check it in order to sign in the user or not
private void verifyUserCode() {
    //credential is a check to compare the code that was sent and the user input for the code
    if (recivedCodeNumber.getText().toString().length() == 0) {
        Toast.makeText(this, "נא למלא את השדה", Toast.LENGTH_SHORT).show();
    } else {
        String userEnteredCode = recivedCodeNumber.getText().toString();
        PhoneAuthCredential credential = PhoneAuthProvider.getCredential(codeSent, userEnteredCode);
        signInWithPhoneAuthCredential(credential);
    }

}

//to sign in the user with the credential's (see verifyUserCode method)
private void signInWithPhoneAuthCredential(final PhoneAuthCredential credential) {
    mAuth.signInWithCredential(credential)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    //   if (task.isSuccessful()) {
                    if (true) {
                        // TODO: 23/10/2018 after solving the problem with the document creation - un comment line 231 and regiser the us
                        //the code was correct and we can sign in the  user
                        //  Toast.makeText(LogingWithPhoneActivity.this, "הקוד שהוכנס נכון לבצע הץחברות", Toast.LENGTH_SHORT)
                        //        .show();
                        //  mAuth.signInWithCredential(credential);
                        sp.edit().putBoolean("logged", true).apply();


                    } else {
                        //the user entered invalid code
                        if (task.getException() instanceof FirebaseAuthInvalidCredentialsException) {
                            Toast.makeText(LogingWithPhoneActivity.this, "הקוד שהוכנס שגוי", Toast.LENGTH_SHORT).show();
                        }
                    }
                }
            });
}

1 Ответ

1 голос
/ 24 марта 2019

это просто, в консоли Firebase перейдите на вкладку аутентификации, теперь перейдите на вкладку метода входа, введите номер и выберите код подтверждения, теперь вы можете проверить этот номер, и у вас есть код подтверждения картинка для пример

...