public abstract class

FirebaseUser

extends Object
implements UserInfo
java.lang.Object
   ↳ com.google.firebase.auth.FirebaseUser

Class Overview

Represents a user's profile information in your Firebase project's user database. It also contains helper methods to change or retrieve profile information, as well as to manage that user's authentication state.

Summary

Public Constructors
FirebaseUser()
Public Methods
Task<Void> delete()
Deletes the user record from your Firebase project's database.
abstract String getDisplayName()
Returns the main display name of this user from the Firebase project's user database.
abstract String getEmail()
Returns the main email address of the user, as stored in the Firebase project's user database.
Task<GetTokenResult> getIdToken(boolean forceRefresh)
Fetches a Firebase Auth ID Token for the user; useful when authenticating against your own backend.
abstract String getPhoneNumber()
Returns the phone number of the user, as stored in the Firebase project's user database, or null if none exists.
abstract Uri getPhotoUrl()
Returns the URL of this user's main profile picture, as stored in the Firebase project's user database.
abstract List<? extends UserInfo> getProviderData()
Returns a List of UserInfo objects that represents the linked identities of the user using different authentication providers that may be linked to their account.
abstract String getProviderId()
Always returns PROVIDER_ID
Task<GetTokenResult> getToken(boolean forceRefresh)
This method is deprecated. This method is being renamed for functional clarity - please use the getIdToken(boolean) method instead.

Fetches a Firebase Auth ID Token for the user; useful when authenticating against your own backend. Use our server SDKs or follow the official documentation to securely verify the integrity and validity of this token.

Exceptions:

  • FirebaseAuthInvalidUserException if forceRefresh == true, thrown if the current user's account has been disabled, deleted, or its credentials are no longer valid
abstract String getUid()
Returns a string used to uniquely identify your user in your Firebase project's user database.
abstract boolean isAnonymous()
Returns true if the user is anonymous; that is, the user account was created with signInAnonymously() and has not been linked to another account with linkWithCredential(AuthCredential).
Task<AuthResult> linkWithCredential(AuthCredential credential)
Attaches the given AuthCredential to the user.
Task<Void> reauthenticate(AuthCredential credential)
Reauthenticates the user with the given credential.
Task<AuthResult> reauthenticateAndRetrieveData(AuthCredential credential)
Reauthenticates the user with the given credential, and returns the profile data for that account.
Task<Void> reload()
Manually refreshes the data of the current user (for example, attached providers, display name, and so on).
Task<Void> sendEmailVerification()
Initiates email verification for the user.
Task<AuthResult> unlink(String provider)
Detaches credentials from a given provider type from this user.
Task<Void> updateEmail(String email)
Updates the email address of the user.
Task<Void> updatePassword(String password)
Updates the password of the user.
Task<Void> updatePhoneNumber(PhoneAuthCredential credential)
Updates the phone number of the user.
Task<Void> updateProfile(UserProfileChangeRequest request)
Updates the user profile information.
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.google.firebase.auth.UserInfo

Public Constructors

public FirebaseUser ()

Public Methods

public Task<Void> delete ()

Deletes the user record from your Firebase project's database. If the operation is successful, the user will be signed out.

Important: this is a security sensitive operation that requires the user to have recently signed in. If this requirement isn't met, ask the user to authenticate again and later call reauthenticate(AuthCredential).

Exceptions:

Returns
Task<Void>

public abstract String getDisplayName ()

Returns the main display name of this user from the Firebase project's user database. Unlike the display name property from instances of UserInfo corresponding to authentication providers (like Google Sign-In), which is not modifiable, this name can be updated at any time by calling updateProfile(UserProfileChangeRequest).

This field will be automatically populated on account creation if the AuthCredential used on signInWithCredential(AuthCredential) contained such information.

Returns
String

public abstract String getEmail ()

Returns the main email address of the user, as stored in the Firebase project's user database. Unlike the email property from instances of UserInfo corresponding to authentication providers (like Github), which is not modifiable, this email address can be updated at any time by calling updateEmail(String).

This field will be automatically populated on account creation if the AuthCredential used on signInWithCredential(AuthCredential) contained such information, or if the account was created with createUserWithEmailAndPassword(String, String).

If the user also has a password, this email address can be used to sign in into the account using signInWithEmailAndPassword(String, String).

This email address is displayed in the Users section of the Firebase console.

Returns
String

public Task<GetTokenResult> getIdToken (boolean forceRefresh)

Fetches a Firebase Auth ID Token for the user; useful when authenticating against your own backend. Use our server SDKs or follow the official documentation to securely verify the integrity and validity of this token.

Exceptions:

  • FirebaseAuthInvalidUserException if forceRefresh == true, thrown if the current user's account has been disabled, deleted, or its credentials are no longer valid

Parameters
forceRefresh boolean: force refreshes the token. Should only be set to true if the token is invalidated out of band.
Returns
Task<GetTokenResult> a Task with the GetTokenResult

public abstract String getPhoneNumber ()

Returns the phone number of the user, as stored in the Firebase project's user database, or null if none exists. This can be updated at any time by calling updatePhoneNumber(PhoneAuthCredential).

This field will be automatically populated on account creation if the AuthCredential used on signInWithCredential(AuthCredential) contained such information. This phone number is displayed in the Users section of the Firebase console.

Returns
String

public abstract Uri getPhotoUrl ()

Returns the URL of this user's main profile picture, as stored in the Firebase project's user database. Unlike the profile URL property from instances of UserInfo corresponding to authentication providers (like Facebook Login), which is not modifiable, this URL can be updated at any time by calling updateProfile(UserProfileChangeRequest).

This field will be automatically populated on account creation if the AuthCredential used on signInWithCredential(AuthCredential) contained such information.

Returns
Uri

public abstract List<? extends UserInfo> getProviderData ()

Returns a List of UserInfo objects that represents the linked identities of the user using different authentication providers that may be linked to their account. Use this to access, for example, your user's basic profile information retrieved from Facebook whether or not the user used Facebook Login to sign in to the current session.

Returns
List<? extends UserInfo>

public abstract String getProviderId ()

Always returns PROVIDER_ID

Returns
String

public Task<GetTokenResult> getToken (boolean forceRefresh)

This method is deprecated.
This method is being renamed for functional clarity - please use the getIdToken(boolean) method instead.

Fetches a Firebase Auth ID Token for the user; useful when authenticating against your own backend. Use our server SDKs or follow the official documentation to securely verify the integrity and validity of this token.

Exceptions:

  • FirebaseAuthInvalidUserException if forceRefresh == true, thrown if the current user's account has been disabled, deleted, or its credentials are no longer valid

Parameters
forceRefresh boolean: force refreshes the token. Should only be set to true if the token is invalidated out of band.
Returns
Task<GetTokenResult> a Task with the GetTokenResult

public abstract String getUid ()

Returns a string used to uniquely identify your user in your Firebase project's user database. Use it when storing information in Firebase Database or Storage, or even in your own backend.

This identifier is opaque and does not correspond necessarily to the user's email address or any other field.

Returns
String

public abstract boolean isAnonymous ()

Returns true if the user is anonymous; that is, the user account was created with signInAnonymously() and has not been linked to another account with linkWithCredential(AuthCredential).

Returns
boolean

public Task<AuthResult> linkWithCredential (AuthCredential credential)

Attaches the given AuthCredential to the user. This allows the user to sign in to this account in the future with credentials for such provider.

Exceptions:

Parameters
credential AuthCredential: a valid credential of a type not yet linked to this user
Returns
Task<AuthResult> Task of AuthResult

public Task<Void> reauthenticate (AuthCredential credential)

Reauthenticates the user with the given credential. This is useful for operations that require a recent sign-in, to prevent or resolve a FirebaseAuthRecentLoginRequiredException.

Exceptions:

Parameters
credential AuthCredential: authentication credential that must be valid for the current user.
Returns
Task<Void>

public Task<AuthResult> reauthenticateAndRetrieveData (AuthCredential credential)

Reauthenticates the user with the given credential, and returns the profile data for that account. This is useful for operations that require a recent sign-in, to prevent or resolve a FirebaseAuthRecentLoginRequiredException.

Exceptions:

Parameters
credential AuthCredential: authentication credential that must be valid for the current user.
Returns
Task<AuthResult> AuthResult containing the FirebaseUser reference and AdditionalUserInfo.

public Task<Void> reload ()

Manually refreshes the data of the current user (for example, attached providers, display name, and so on).

Exceptions:

Returns
Task<Void>

public Task<Void> sendEmailVerification ()

Initiates email verification for the user.

Returns
Task<Void> Task to track completion of the sending operation.

public Task<AuthResult> unlink (String provider)

Detaches credentials from a given provider type from this user. This prevents the user from signing in to this account in the future with credentials from such provider.

Exceptions:

Parameters
provider String: a unique identifier of the type of provider to be unlinked, for example, PROVIDER_ID.
Returns
Task<AuthResult> Task of AuthResult

public Task<Void> updateEmail (String email)

Updates the email address of the user.

Important: this is a security sensitive operation that requires the user to have recently signed in. If this requirement isn't met, ask the user to authenticate again and later call reauthenticate(AuthCredential).

In addition, note that the original email address recipient will receive an email that allows them to revoke the email address change, in order to protect them from account hijacking.

Exceptions:

Parameters
email String
Returns
Task<Void>

public Task<Void> updatePassword (String password)

Updates the password of the user.

Important: this is a security sensitive operation that requires the user to have recently signed in. If this requirement isn't met, ask the user to authenticate again and later call reauthenticate(AuthCredential).

Exceptions:

Parameters
password String
Returns
Task<Void>

public Task<Void> updatePhoneNumber (PhoneAuthCredential credential)

Updates the phone number of the user.

Important: this is a security sensitive operation that requires the user to have recently signed in. If this requirement isn't met, ask the user to authenticate again and later call reauthenticate(AuthCredential).

Exceptions:

Parameters
credential PhoneAuthCredential
Returns
Task<Void>

public Task<Void> updateProfile (UserProfileChangeRequest request)

Updates the user profile information. Use UserProfileChangeRequest.Builder to construct the request.

Exceptions:

Parameters
request UserProfileChangeRequest
Returns
Task<Void>