Запрос кода подтверждения по SMS не выполнен с неизвестным кодом состояния 17006 при аутентификации с помощью API FirebaAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Запрос кода подтверждения по SMS не выполнен с неизвестным кодом состояния 17006 при аутентификации с помощью API Fireba

Сообщение Anonymous »

Я не знаю, что означает эта ошибка. Я много искал в Google, но не смог понять, почему получаю эту ошибку.
E/FirebaseAuth: [SmsRetrieverHelper] SMS verification code request failed: unknown status code: 17006 null

Я пытаюсь аутентифицировать клиента Android с помощью метода входа в систему с помощью телефона Firebase и пытаюсь подтвердить его номер телефона, отправив код подтверждения на его телефон. Код не отправляется и функция обратного вызова не вызывается. Я не знаю, в чем здесь проблема.
Вот действие по получению номера телефона из текста редактирования, отправке кода подтверждения на этот номер телефона и запуску следующего действия, в которое пользователь введет код, который у них есть:
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.os.Parcelable;
import android.util.Log;
import android.widget.Button;
import android.widget.EditText;

import com.google.firebase.FirebaseException;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.PhoneAuthCredential;
import com.google.firebase.auth.PhoneAuthOptions;
import com.google.firebase.auth.PhoneAuthProvider;

import java.util.concurrent.TimeUnit;

public class PhoneOtpAuth extends AppCompatActivity {

private FirebaseAuth mAuth;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_phone_otp_auth);

EditText phoneNumberEditText = findViewById(R.id.phone_number);
Button signIn = findViewById(R.id.sign_in_button);

mAuth = FirebaseAuth.getInstance();

signIn.setOnClickListener(v -> {
String phoneNumber = phoneNumberEditText.getText().toString();

PhoneAuthOptions options =
PhoneAuthOptions.newBuilder(mAuth)
.setPhoneNumber(phoneNumber)
.setTimeout(60L, TimeUnit.SECONDS)
.setActivity(PhoneOtpAuth.this)
.setCallbacks(callbacks)
.build();

PhoneAuthProvider.verifyPhoneNumber(options);
});
}

PhoneAuthProvider.OnVerificationStateChangedCallbacks callbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
@Override
public void onVerificationCompleted(@NonNull PhoneAuthCredential phoneAuthCredential) {
Intent signUpIntent = new Intent(PhoneOtpAuth.this, DriverSignup.class);
startActivity(signUpIntent);
finish();
}

@Override
public void onVerificationFailed(@NonNull FirebaseException e) {

}

@Override
public void onCodeSent(@NonNull String s, @NonNull PhoneAuthProvider.ForceResendingToken forceResendingToken) {
Intent otpVerificationIntent = new Intent(PhoneOtpAuth.this, OtpVerificationActivity.class);
otpVerificationIntent.putExtra("VerificationId", s);
startActivity(otpVerificationIntent);
finish();
}
};
}

Вот действие для проверки кода подтверждения, полученного пользователем в результате последнего (вышеуказанного) действия:
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.FirebaseException;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.PhoneAuthCredential;
import com.google.firebase.auth.PhoneAuthOptions;
import com.google.firebase.auth.PhoneAuthProvider;

import java.util.concurrent.TimeUnit;

public class OtpVerificationActivity extends AppCompatActivity {

private String otp;

private FirebaseAuth mAuth;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_otp_verification);

EditText otpEditText = findViewById(R.id.otp);
Button verifyOtp = findViewById(R.id.verify_otp_button);

mAuth = FirebaseAuth.getInstance();

otp = otpEditText.getText().toString();
String verificationId = getIntent().getExtras().getString("VerificationId");
FirebaseAuth mAuth = getIntent().getExtras().getParcelable("mAuth");

verifyOtp.setOnClickListener(v -> {
PhoneAuthCredential phoneAuthCredential = PhoneAuthProvider.getCredential(verificationId, otp);

mAuth.signInWithCredential(phoneAuthCredential)
.addOnCompleteListener(task -> {
if(task.isSuccessful()) {
Intent signUpIntent = new Intent(OtpVerificationActivity.this, DriverSignup.class);
startActivity(signUpIntent);
finish();
}
});
});
}
}


Подробнее здесь: https://stackoverflow.com/questions/660 ... hile-authe
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»