use of com.google.firebase.auth.MultiFactorSession in project quickstart-android by firebase.
the class MultiFactorEnrollFragment method onClickVerifyPhoneNumber.
private void onClickVerifyPhoneNumber() {
String phoneNumber = mBinding.fieldPhoneNumber.getText().toString();
OnVerificationStateChangedCallbacks callbacks = new OnVerificationStateChangedCallbacks() {
@Override
public void onVerificationCompleted(PhoneAuthCredential credential) {
// This should never be triggered.
throw new RuntimeException("onVerificationCompleted() triggered with instant-validation and auto-retrieval disabled.");
}
@Override
public void onCodeSent(final String verificationId, PhoneAuthProvider.ForceResendingToken token) {
Log.d(TAG, "onCodeSent:" + verificationId);
Toast.makeText(getContext(), "SMS code has been sent", Toast.LENGTH_SHORT).show();
mCodeVerificationId = verificationId;
}
@Override
public void onVerificationFailed(FirebaseException e) {
Log.w(TAG, "onVerificationFailed ", e);
Toast.makeText(getContext(), "Verification failed: " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
};
FirebaseAuth.getInstance().getCurrentUser().getMultiFactor().getSession().addOnCompleteListener(new OnCompleteListener<MultiFactorSession>() {
@Override
public void onComplete(@NonNull Task<MultiFactorSession> task) {
if (task.isSuccessful()) {
PhoneAuthOptions phoneAuthOptions = PhoneAuthOptions.newBuilder().setPhoneNumber(phoneNumber).setTimeout(0L, TimeUnit.SECONDS).setMultiFactorSession(task.getResult()).setCallbacks(callbacks).requireSmsValidation(true).build();
PhoneAuthProvider.verifyPhoneNumber(phoneAuthOptions);
} else {
Toast.makeText(getContext(), "Failed to get session: " + task.getException(), Toast.LENGTH_SHORT).show();
}
}
});
}
Aggregations