public abstract class

FirebaseAuth

extends Object
java.lang.Object
   ↳ com.google.firebase.auth.FirebaseAuth

Class Overview

The entry point of the Firebase Authentication SDK.

First, obtain an instance of this class by calling getInstance().

Then, sign up or sign in a user with one of the following methods:

Finally, call getCurrentUser() to get a FirebaseUser object, which contains information about the signed-in user.

Summary

Nested Classes
interface FirebaseAuth.AuthStateListener Listener called when there is a change in the authentication state. 
interface FirebaseAuth.IdTokenListener Listener called when the id token is changed. 
Public Methods
void addAuthStateListener(FirebaseAuth.AuthStateListener listener)
Registers a listener to changes in the user authentication state.
void addIdTokenListener(FirebaseAuth.IdTokenListener listener)
Registers a listener to changes in the token authentication state.
Task<Void> applyActionCode(String code)
Applies the given code, which can be any out of band code which is valid according to checkActionCode(String) that does not also pass verifyPasswordResetCode(String), which requires an additional parameter.
Task<ActionCodeResult> checkActionCode(String code)
Checks that the code given is valid.
Task<Void> confirmPasswordReset(String code, String newPassword)
Changes the user's password to newPassword for the account for which the code is valid.
Task<AuthResult> createUserWithEmailAndPassword(String email, String password)
Tries to create a new user account with the given email address and password.
Task<ProviderQueryResult> fetchProvidersForEmail(String email)
Returns a list of authentication providers that can be used to sign in a given user (identified by its main email address).
FirebaseUser getCurrentUser()
Returns the currently signed-in FirebaseUser or null if there is none.
static FirebaseAuth getInstance()
Returns an instance of this class corresponding to the default FirebaseApp instance.
static FirebaseAuth getInstance(FirebaseApp firebaseApp)
Returns an instance of this class corresponding to the given FirebaseApp instance.
void removeAuthStateListener(FirebaseAuth.AuthStateListener listener)
Unregisters a listener to authentication changes.
void removeIdTokenListener(FirebaseAuth.IdTokenListener listener)
Unregisters a listener to authentication changes.
Task<Void> sendPasswordResetEmail(String email)
Triggers the Firebase Authentication backend to send a password-reset email to the given email address, which must correspond to an existing user of your app.
Task<AuthResult> signInAnonymously()
Signs in the user anonymously without requiring any credential.
Task<AuthResult> signInWithCredential(AuthCredential credential)
Tries to sign in a user with the given AuthCredential.
Task<AuthResult> signInWithCustomToken(String token)
Tries to sign in a user with a given Custom Token.
Task<AuthResult> signInWithEmailAndPassword(String email, String password)
Tries to sign in a user with the given email address and password.
void signOut()
Signs out the current user and clears it from the disk cache.
Task<String> verifyPasswordResetCode(String code)
Checks that the code is a valid password reset out of band code.
[Expand]
Inherited Methods
From class java.lang.Object

Public Methods

public void addAuthStateListener (FirebaseAuth.AuthStateListener listener)

Registers a listener to changes in the user authentication state. There can be more than one listener registered at the same time for one or more FirebaseAuth instances.

The listeners call back in the UI thread, on the following events:

  • Right after the listener has been registered
  • When a user signs in
  • When the current user signs out
  • When the current user changes

It is a recommended practice to always listen to sign-out events, as you may want to prompt the user to sign in again and maybe restrict the information or actions they have access to.

Use removeAuthStateListener(AuthStateListener) to unregister a listener.

See addIdTokenListener(IdTokenListener) if you want to listen to token refreshes.

See Also: FirebaseAuth.AuthStateListener

Parameters
listener FirebaseAuth.AuthStateListener

public void addIdTokenListener (FirebaseAuth.IdTokenListener listener)

Registers a listener to changes in the token authentication state. There can be more than one listener registered at the same time for one or more FirebaseAuth instances.

The listeners call back in the UI thread, on the following events:

  • Right after the listener has been registered
  • When a user signs in
  • When the current user signs out
  • When the current user changes
  • When there is a change in the current user's token

It is a recommended practice to always listen to sign-out events, as you may want to prompt the user to sign in again and maybe restrict the information or actions they have access to.

Use removeIdTokenListener(IdTokenListener) to unregister a listener.

See addAuthStateListener(AuthStateListener) if you do not want to listen to token refreshes.

See Also: FirebaseAuth.IdTokenListener

Parameters
listener FirebaseAuth.IdTokenListener

public Task<Void> applyActionCode (String code)

Applies the given code, which can be any out of band code which is valid according to checkActionCode(String) that does not also pass verifyPasswordResetCode(String), which requires an additional parameter.

Parameters
code String
Returns
Task<Void>

public Task<ActionCodeResult> checkActionCode (String code)

Checks that the code given is valid. This code will have been generated by sendPasswordResetEmail(String) or sendEmailVerification() valid for a single use.

Parameters
code String
Returns
Task<ActionCodeResult> Task which you can use to see the result via the ActionCodeResult, which holds the user email for which that ActionCode is valid, as well as the ActionCodeResult.Operation which is being performed.

public Task<Void> confirmPasswordReset (String code, String newPassword)

Changes the user's password to newPassword for the account for which the code is valid. Code validity can be checked with verifyPasswordResetCode(String). This use case is only valid for signed-out users, and behavior is undefined for signed-in users. Password changes for signed-in users should be made using updatePassword(String).

Parameters
code String
newPassword String
Returns
Task<Void>

public Task<AuthResult> createUserWithEmailAndPassword (String email, String password)

Tries to create a new user account with the given email address and password. If successful, it also signs the user in into the app.

Access the signed-in user with getCurrentUser().

Upon successful completion, this operation triggers an onIdTokenChanged(FirebaseAuth) event in all registered FirebaseAuth.IdTokenListeners and an onAuthStateChanged(FirebaseAuth) event in all registered FirebaseAuth.AuthStateListeners.

Important: you must enable Email & Password accounts in the Firebase console before you can use this method.

Exceptions:

See Also:

Parameters
email String
password String
Returns
Task<AuthResult> Task of AuthResult with the result of the operation

public Task<ProviderQueryResult> fetchProvidersForEmail (String email)

Returns a list of authentication providers that can be used to sign in a given user (identified by its main email address).

This method is useful when you support multiple authentication mechanisms if you want to implement an email-first authentication flow. It is also useful to resolve a FirebaseAuthUserCollisionException thrown on signInWithCredential(AuthCredential).

Exceptions:

Parameters
email String: the email address that identifies the user to fetch the providers from
Returns
Task<ProviderQueryResult> Task of ProviderQueryResult with the result of the operation

public FirebaseUser getCurrentUser ()

Returns the currently signed-in FirebaseUser or null if there is none.

Use getCurrentUser() != null to check if a user is signed in.

Returns
FirebaseUser the signed-in user or null

public static FirebaseAuth getInstance ()

Returns an instance of this class corresponding to the default FirebaseApp instance.

Note: Firebase Authentication does not currently support Android Direct Boot.

For Applications that use Direct Boot, please check if android.content.Context.isDeviceProtectedStorage is false before you call FirebaseAuth.getInstance().

Returns
FirebaseAuth

public static FirebaseAuth getInstance (FirebaseApp firebaseApp)

Returns an instance of this class corresponding to the given FirebaseApp instance.

Note: Firebase Authentication does not currently support Android Direct Boot.

For Applications that use Direct Boot, please check if android.content.Context.isDeviceProtectedStorage is false before you call FirebaseAuth.getInstance(firebaseApp).

Parameters
firebaseApp FirebaseApp
Returns
FirebaseAuth

public void removeAuthStateListener (FirebaseAuth.AuthStateListener listener)

Unregisters a listener to authentication changes.

See Also: FirebaseAuth.AuthStateListener

Parameters
listener FirebaseAuth.AuthStateListener

public void removeIdTokenListener (FirebaseAuth.IdTokenListener listener)

Unregisters a listener to authentication changes.

See Also: FirebaseAuth.IdTokenListener

Parameters
listener FirebaseAuth.IdTokenListener

public Task<Void> sendPasswordResetEmail (String email)

Triggers the Firebase Authentication backend to send a password-reset email to the given email address, which must correspond to an existing user of your app.

Exceptions:

Parameters
email String
Returns
Task<Void> Task to track completion of the sending operation

public Task<AuthResult> signInAnonymously ()

Signs in the user anonymously without requiring any credential.

This method creates a new account in your Firebase Authentication system, except in the case where there was already an anonymous user signed in into this app. Access the signed-in user with getCurrentUser().

Upon successful completion, this operation triggers an onIdTokenChanged(FirebaseAuth) event in all registered FirebaseAuth.IdTokenListeners and an onAuthStateChanged(FirebaseAuth) event in all registered FirebaseAuth.AuthStateListeners.

Anonymous users do not require any credential, and are useful in situations where you want to persist information about your users before asking them to sign in. For example, they may be useful when implementing a signed-out shopping cart in an e-commerce application.

Due to the unauthenticated nature of this kind of user, they are not transferrable across devices. In order to allow your app's users to keep their information, ask them to provide some other authentication credentials, and link them to the current user with linkWithCredential(AuthCredential).

Important: you must enable Anonymous accounts in the Firebase console before being able to use them.

Returns
Task<AuthResult> Task of AuthResult with the result of the operation

public Task<AuthResult> signInWithCredential (AuthCredential credential)

Tries to sign in a user with the given AuthCredential.

Use this method to sign in a user into your Firebase Authentication system. First retrieve the credential either directly from the user, in case of EmailAuthCredential, or from a supported authentication SDK, such as Google Sign-In or Facebook. Later access the signed-in user with getCurrentUser().

For all AuthCredential types except EmailAuthCredential, this method will create an account for the user in the case that it didn't exist before.

Important: you must configure the authentication providers in the Firebase console before you can use them.

Exceptions:

See Also:

Parameters
credential AuthCredential
Returns
Task<AuthResult> Task of AuthResult with the result of the operation

public Task<AuthResult> signInWithCustomToken (String token)

Tries to sign in a user with a given Custom Token.

Use this method after you retrieve a Firebase Auth Custom Token from your server, to sign in a user into your Firebase Authentication system. Access the signed-in user with getCurrentUser().

Upon successful completion, this operation triggers an onIdTokenChanged(FirebaseAuth) event in all registered FirebaseAuth.IdTokenListeners and an onAuthStateChanged(FirebaseAuth) event in all registered FirebaseAuth.AuthStateListeners.

This operation might create an account if the uid specified in the token corresponds to a user without a record in the system.

Read how to use Custom Token authentication and the cases where it is useful in the guides.

Exceptions:

Parameters
token String
Returns
Task<AuthResult> Task of AuthResult with the result of the operation

public Task<AuthResult> signInWithEmailAndPassword (String email, String password)

Tries to sign in a user with the given email address and password.

Access the signed-in user with getCurrentUser().

Upon successful completion, this operation triggers an onIdTokenChanged(FirebaseAuth) event in all registered FirebaseAuth.IdTokenListeners and an onAuthStateChanged(FirebaseAuth) event in all registered FirebaseAuth.AuthStateListeners.

This is equivalent to calling signInWithCredential(AuthCredential) with an EmailAuthCredential.

Important: you must enable Email & Password accounts in the Firebase console before being able to use this method.

Exceptions:

Parameters
email String
password String
Returns
Task<AuthResult> Task of AuthResult with the result of the operation

public void signOut ()

Signs out the current user and clears it from the disk cache.

Upon successful completion, this operation triggers an onIdTokenChanged(FirebaseAuth) event in all registered FirebaseAuth.IdTokenListeners and an onAuthStateChanged(FirebaseAuth) event in all registered FirebaseAuth.AuthStateListeners.

public Task<String> verifyPasswordResetCode (String code)

Checks that the code is a valid password reset out of band code. This code will have been generated by a call to sendPasswordResetEmail(String), and is valid for a single use.

Parameters
code String
Returns
Task<String> Task which holds the email for which this code is applicable.