Public class PhoneNumberActivity extends AppCompatActivity {
private Button buttonLog,buttonReg;
private EditText numberVery,smsVery;
private FirebaseAuth mAuth;
private String verificationID;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_phone_number);
buttonLog=(Button) findViewById(R.id.buttonLog);
buttonReg=(Button) findViewById(R.id.buttonReg);
numberVery=(EditText) findViewById(R.id.numberVery);
smsVery=(EditText) findViewById(R.id.smsVery);
mAuth=FirebaseAuth.getInstance();
buttonReg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (TextUtils.isEmpty(numberVery.getText().toString()))
{
Toast.makeText(PhoneNumberActivity.this, "code", Toast.LENGTH_SHORT).show();
}
else {
String phoneNumber = numberVery.getText().toString();
sendvericationcode();
}
}
});
buttonLog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (TextUtils.isEmpty( smsVery.getText().toString()))
{
Toast.makeText(PhoneNumberActivity.this, "codevfdff", Toast.LENGTH_SHORT).show();
}
else
verifycode(otp.getText().toString());
}
});
}
private void sendvericationcode(String phoneNumber) {
PhoneAuthOptions options =
PhoneAuthOptions.newBuilder(mAuth)
.setPhoneNumber("+7"+phoneNumber) // Phone number to verify
.setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
.setActivity(this) // Activity (for callback binding)
.setCallbacks(mCallbacks) // OnVerificationStateChangedCallbacks
.build();
PhoneAuthProvider.verifyPhoneNumber(options);
}
private PhoneAuthProvider.OnVerificationStateChangedCallbacks
mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
@Override
public void onVerificationCompleted(@NonNull PhoneAuthCredential credential)
{
final String code=credential.getSmsCode();
if (code!=null) {
verifycode(code);
}
}
@Override
public void onVerificationFailed(@NonNull FirebaseException e) {
Toast.makeText(PhoneNumberActivity.this, "Ошибка верификации", Toast.LENGTH_SHORT).show();
}
@Override
public void onCodeSent(@NonNull String s,
@NonNull PhoneAuthProvider.ForceResendingToken token)
{
super.onCodeSent(s,token);
verificationID=s;
}
};
private void verifycode(String Code) {
PhoneAuthCredential.credential=PhoneAuthProvider.getCredential(verificationID,Code);
signInbyCredentials(credential);
}
private void signInbyCredentials(PhoneAuthCredential credential){
FirebaseAuth firebaseAuth=FirebaseAuth.getInstance();
FirebaseAuth.signInWithCredential(credential)
.addOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
if (task.isSuccessful()){
Toast.makeText(PhoneNumberActivity.this, "Wellcome!", Toast.LENGTH_SHORT).show();
startActivity(new Intent(PhoneNumberActivity.this,MainActivity.class));
}
}
});
}
}
Что тут исправить и в правильном ли направлении я пишу? credential и otp говорят красным как исправить эту ошибку?
-
Вопрос задан
-
129 просмотров