Проблемы связывания электронной почты с аутентификацией телефона в Firebase - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь связать учетную запись электронной почты и аутентификацию телефона с помощью firebase, но при попытке связывания выдает ошибку.Если я использую метод "signInWithCredential", кажется, работает правильно, но если использование "linkWithCredential" выбрасывает FirebaseAuthInvalidCredentialsException

, я пытался использовать updatePhoneNumber, но выдает ту же ошибку, неверные учетные данные

PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationId, code);
mAuth.getCurrentUser().updatePhoneNumber(credential).addOnCompleteListener(this, new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {

                    if (task.isSuccessful()) {
                        Log.d(TAG, "signInWithCredential:success");

                        Snackbar.make(findViewById(android.R.id.content), "Mobile Verified Successfully.",
                                Snackbar.LENGTH_SHORT).show();

                    } else {
                        Log.w(TAG, "signInWithCredential:failure", task.getException());
                        if (task.getException() instanceof FirebaseAuthInvalidCredentialsException) {
                            //mVerificationField.setError("Invalid code.");
                            Snackbar.make(findViewById(android.R.id.content), "Invalid Code.",
                                    Snackbar.LENGTH_SHORT).show();
                        } else {

                            Log.d("signInWithCredential", task.getException().toString());

                        }
                    }
                }
            });

    PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationId, code);

    mAuth.getCurrentUser().linkWithCredential(credential)
                    .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            if (task.isSuccessful()) {
                                Log.d(TAG, "linkWithCredential:success");
                                Toast.makeText(PhoneAuthActivity.this, "linked accounts", Toast.LENGTH_SHORT).show();
                                FirebaseUser user = task.getResult().getUser();
                               // updateUI(user);
                            } else {
                                Log.w(TAG, "linkWithCredential:failure", task.getException());
                                Toast.makeText(PhoneAuthActivity.this, "Authentication failed.",
                                        Toast.LENGTH_SHORT).show();
                               // updateUI(null);
                            }

                            // ...
                        }
                    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...