PhoneAuthProvider

public class PhoneAuthProvider


Represents the phone number authentication mechanism. Use this class to obtain s.

Summary

Nested types

A 'token' that can be used to force re-sending an SMS verification code.

Registered callbacks for the different phone auth events.

Constants

static final String

Unique string identifier for Phone sign-in method.

static final String
PROVIDER_ID = "phone"

Unique string identifier for this provider type.

Public methods

static @NonNull PhoneAuthCredential
getCredential(@NonNull String verificationId, @NonNull String smsCode)

Returns a new instance of AuthCredential that is associated with a phone number.

static @NonNull PhoneAuthProvider

This method is deprecated.

Instead, use verifyPhoneNumber

static @NonNull PhoneAuthProvider

This method is deprecated.

Instead, use verifyPhoneNumber

static void

Starts the phone verification process with the settings defined in PhoneAuthOptions.

void
verifyPhoneNumber(
    @NonNull String phoneNumber,
    long timeout,
    @NonNull TimeUnit unit,
    @NonNull Activity activity,
    @NonNull PhoneAuthProvider.OnVerificationStateChangedCallbacks callbacks
)

This method is deprecated.

Instead, use verifyPhoneNumber

void
verifyPhoneNumber(
    @NonNull String phoneNumber,
    long timeout,
    @NonNull TimeUnit unit,
    @NonNull Activity activity,
    @NonNull PhoneAuthProvider.OnVerificationStateChangedCallbacks callbacks,
    @Nullable PhoneAuthProvider.ForceResendingToken forceResendingToken
)

This method is deprecated.

Instead, use verifyPhoneNumber

Constants

PHONE_SIGN_IN_METHOD

public static final String PHONE_SIGN_IN_METHOD = "phone"

Unique string identifier for Phone sign-in method.

PROVIDER_ID

public static final String PROVIDER_ID = "phone"

Unique string identifier for this provider type.

Public methods

getCredential

public static @NonNull PhoneAuthCredential getCredential(@NonNull String verificationId, @NonNull String smsCode)

Returns a new instance of AuthCredential that is associated with a phone number. Used when calling signInWithCredential or linkWithCredential.

Parameters
@NonNull String verificationId

a valid verificationId retrieved by calling verifyPhoneNumber

@NonNull String smsCode

the 6 digit SMS-code sent to the user

getInstance

public static @NonNull PhoneAuthProvider getInstance()

Initializes a new PhoneAuthProvider using the default FirebaseAuth instance.

getInstance

public static @NonNull PhoneAuthProvider getInstance(@NonNull FirebaseAuth firebaseAuth)

Static method to initialize a new PhoneAuthProvider for the specified Auth instance.

verifyPhoneNumber

public static void verifyPhoneNumber(@NonNull PhoneAuthOptions options)

Starts the phone verification process with the settings defined in PhoneAuthOptions.

verifyPhoneNumber

public void verifyPhoneNumber(
    @NonNull String phoneNumber,
    long timeout,
    @NonNull TimeUnit unit,
    @NonNull Activity activity,
    @NonNull PhoneAuthProvider.OnVerificationStateChangedCallbacks callbacks
)

Starts the phone number verification process for the given phone number. Either sends an SMS with a 6 digit code to the phone number specified or triggers the callback with a complete AuthCredential that can be used to log in the user.

The specified callback will be Activity-scoped, i.e. it will be automatically removed during onStop. This function is reentrant and can be called again in onStart. No duplicated SMS will be sent out upon re-entry (before timeout).

Make sure to test all scenarios below:

  • You directly get back an AuthCredential if Google Play services verified the phone number instantly or helped you auto-retrieve the verification code.
  • auto-retrieve verification code timed out.
  • error cases when you receive onVerificationFailed.
Parameters
@NonNull String phoneNumber

the phone number for the account the user is signing up for or signing into. Make sure to pass in a phone number with country code prefixed with plus sign ('+').

long timeout

the maximum amount of time you are willing to wait for SMS auto-retrieval to be completed by the library. Maximum allowed value is 2 minutes. Use 0 to disable SMS-auto-retrieval. Setting this to 0 will also cause onCodeAutoRetrievalTimeOut to be called immediately. If you specified a positive value less than 30 seconds, library will default to 30 seconds.

@NonNull TimeUnit unit

the TimeUnit for the timeout

@NonNull Activity activity

the Activity to which the callbacks are scoped.

@NonNull PhoneAuthProvider.OnVerificationStateChangedCallbacks callbacks

the callbacks to get the status of phone number verification. The callbacks will be automatically removed when the specified activity has stopped. When a test phone number and sms code pair is set via setAutoRetrievedSmsCodeForPhoneNumber and in the Firebase console, onCodeAutoRetrievalTimeOut will never be triggered.

verifyPhoneNumber

public void verifyPhoneNumber(
    @NonNull String phoneNumber,
    long timeout,
    @NonNull TimeUnit unit,
    @NonNull Activity activity,
    @NonNull PhoneAuthProvider.OnVerificationStateChangedCallbacks callbacks,
    @Nullable PhoneAuthProvider.ForceResendingToken forceResendingToken
)

See verifyPhoneNumber for details. This overload allows specifying a .

Parameters
@NonNull String phoneNumber

the phone number for the account the user is signing up for or signing into. Make sure to pass in a phone number with country code prefixed with plus sign ('+').

long timeout

the maximum amount of time you are willing to wait for SMS auto-retrieval to be completed by the library. Maximum allowed value is 2 minutes. Use 0 to disable SMS-auto-retrieval. Setting this to 0 will also cause onCodeAutoRetrievalTimeOut to be called immediately. If you specified a positive value less than 30 seconds, library will default to 30 seconds.

@NonNull TimeUnit unit

the TimeUnit for the timeout

@NonNull Activity activity

the Activity to which the callbacks are scoped.

@NonNull PhoneAuthProvider.OnVerificationStateChangedCallbacks callbacks

the callbacks to get the status of phone number verification. The callbacks will be automatically removed when the specified activity has stopped. When a test phone number and sms code pair is set via setAutoRetrievedSmsCodeForPhoneNumber and in the Firebase console, onCodeAutoRetrievalTimeOut will never be triggered.

@Nullable PhoneAuthProvider.ForceResendingToken forceResendingToken

the ForceResendingToken obtained from onCodeSent callback to force re-sending another verification SMS before the auto-retrieval timeout.