java.lang.Object | |
↳ | com.google.firebase.auth.FirebaseAuth |
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:
createUserWithEmailAndPassword(String, String)
signInWithEmailAndPassword(String, String)
signInWithCredential(AuthCredential)
signInAnonymously()
signInWithCustomToken(String)
getCurrentUser()
to get a FirebaseUser
object, which contains
information about the signed-in user.
Nested Classes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
FirebaseAuth.AuthStateListener | Listener called when there is a change in the authentication state. | ||||||||||
FirebaseAuth.IdTokenListener | Listener called when the id token is changed. |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Registers a listener to changes in the user authentication state.
| |||||||||||
Registers a listener to changes in the token authentication state.
| |||||||||||
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. | |||||||||||
Checks that the
code given is valid. | |||||||||||
Changes the user's password to
newPassword for the account for which the code
is valid. | |||||||||||
Tries to create a new user account with the given email address and password.
| |||||||||||
This method is deprecated.
This method is being renamed for functional clarity - please use the
fetchSignInMethodsForEmail(String) method instead. | |||||||||||
Returns a list of signin methods that can be used to sign in a given user (identified by its
main email address).
| |||||||||||
Returns the
FirebaseApp instance to which this FirebaseAuth belongs. | |||||||||||
Returns the currently signed-in
FirebaseUser or null if there is none. | |||||||||||
Returns an instance of this class corresponding to the default
FirebaseApp instance. | |||||||||||
Returns an instance of this class corresponding to the given
FirebaseApp instance. | |||||||||||
Returns the language code set in
setLanguageCode(String) . | |||||||||||
Determines if the given link is a link intended for use with
getCredentialWithLink(String, String) . | |||||||||||
Unregisters a listener to authentication changes.
| |||||||||||
Unregisters a listener to authentication changes.
| |||||||||||
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.
| |||||||||||
Calls
sendPasswordResetEmail(String, ActionCodeSettings) without any
ActionCodeSettings. | |||||||||||
Sends an email to the specified email which will contain a link to be used to sign in the user.
| |||||||||||
For internal use in FirebaseUI only.
| |||||||||||
Sets the user-facing language code for auth operations that can be internationalized, such as
sendEmailVerification() . | |||||||||||
Signs in the user anonymously without requiring any credential.
| |||||||||||
Tries to sign in a user with the given
AuthCredential . | |||||||||||
Tries to sign in a user with a given Custom Token.
| |||||||||||
Tries to sign in a user with the given email address and password.
| |||||||||||
Tries to sign in a user with the given email address and link.
| |||||||||||
Signs out the current user and clears it from the disk cache.
| |||||||||||
Sets the user-facing language code to be the default app language.
| |||||||||||
Checks that the
code is a valid password reset out of band code. |
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
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:
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 |
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:
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 |
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> |
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.
|
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)
.
IllegalArgumentException
thrown if passed a null code
or newPassword
FirebaseAuthActionCodeException
thrown if the code
is malformed or has
expired.
FirebaseAuthInvalidUserException
thrown if the user corresponding to the given
code has been disabled, or if there is no user corresponding to the given code.
FirebaseAuthWeakPasswordException
thrown if the given newPassword
is too
weak.
See Also:
Parameters | |
---|---|
code |
String |
newPassword |
String |
Returns | |
---|---|
Task<Void> |
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.IdTokenListener
s and an onAuthStateChanged(FirebaseAuth)
event in
all registered FirebaseAuth.AuthStateListener
s.
Important: you must enable Email & Password accounts in the Firebase console before you can use this method.
FirebaseAuthWeakPasswordException
thrown if the password is not strong enough
FirebaseAuthInvalidCredentialsException
thrown if the email
address is
malformed
FirebaseAuthUserCollisionException
thrown if there already exists an account with
the given email
address
See Also:
signInWithEmailAndPassword(String, String)
signInWithCredential(AuthCredential)
signInAnonymously()
signInWithCustomToken(String)
Parameters | |
---|---|
email |
String |
password |
String |
Returns | |
---|---|
Task<AuthResult> |
Task of AuthResult with the result of the operation
|
This method is deprecated.
This method is being renamed for functional clarity - please use the fetchSignInMethodsForEmail(String)
method instead.
Parameters | |
---|---|
email |
String : the email address that identifies the user to fetch the providers from |
Returns | |
---|---|
Task<ProviderQueryResult> |
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
Exceptions:
Task of ProviderQueryResult with the result of the operation
|
Returns a list of signin methods that can be used to sign in a given user (identified by its
main email address). This will match the getSignInMethod()
for the
credential you would generate for the appropriate signin mechanism.
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)
.
FirebaseAuthInvalidCredentialsException
thrown if the email
address is
malformed
Parameters | |
---|---|
email |
String : the email address that identifies the user to fetch the providers from |
Returns | |
---|---|
Task<SignInMethodQueryResult> |
Task of SignInMethodQueryResult with the result of the operation
|
Returns the FirebaseApp
instance to which this FirebaseAuth
belongs.
Returns | |
---|---|
FirebaseApp |
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 |
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 |
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 |
Returns the language code set in setLanguageCode(String)
.
Returns | |
---|---|
String |
Determines if the given link is a link intended for use with getCredentialWithLink(String, String)
. These links are generated by sendSignInLinkToEmail(String, ActionCodeSettings)
.
Parameters | |
---|---|
link |
String |
Returns | |
---|---|
boolean |
Unregisters a listener to authentication changes.
See Also: FirebaseAuth.AuthStateListener
Parameters | |
---|---|
listener |
FirebaseAuth.AuthStateListener |
Unregisters a listener to authentication changes.
See Also: FirebaseAuth.IdTokenListener
Parameters | |
---|---|
listener |
FirebaseAuth.IdTokenListener |
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. Takes in an ActionCodeSettings
which allows linking back to your app from the sent email.
FirebaseAuthInvalidUserException
thrown if there is no user corresponding to the
given email
address
Parameters | |
---|---|
email |
String : the email of the account to which you wish to issue an account reset email |
actionCodeSettings |
ActionCodeSettings : the settings used to allow your app to handle the link sent in the
email on iOS, web, and Android. |
Returns | |
---|---|
Task<Void> |
Task to track completion of the sending operation
|
Calls sendPasswordResetEmail(String, ActionCodeSettings)
without any
ActionCodeSettings.
Parameters | |
---|---|
email |
String |
Returns | |
---|---|
Task<Void> |
Sends an email to the specified email which will contain a link to be used to sign in the user.
See also getCredentialWithLink(String, String)
Parameters | |
---|---|
email |
String |
actionCodeSettings |
ActionCodeSettings |
Returns | |
---|---|
Task<Void> |
Sets the user-facing language code for auth operations that can be internationalized, such as
sendEmailVerification()
. This language code should follow the conventions
defined by the IETF in BCP47.
Parameters | |
---|---|
languageCode |
String |
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.IdTokenListener
s and an onAuthStateChanged(FirebaseAuth)
event in
all registered FirebaseAuth.AuthStateListener
s.
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.
signInWithEmailAndPassword(String, String)
createUserWithEmailAndPassword(String, String)
signInWithCredential(AuthCredential)
signInWithCustomToken(String)
Returns | |
---|---|
Task<AuthResult> |
Task of AuthResult with the result of the operation
|
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.
FirebaseAuthInvalidUserException
thrown if the user account you are trying to
sign in to has been disabled. Also thrown if credential
is an EmailAuthCredential
with an email address that does not correspond to an existing user.
FirebaseAuthInvalidCredentialsException
thrown if the credential
is
malformed or has expired. If credential instanceof EmailAuthCredential
it will be
thrown if the password is incorrect.
FirebaseAuthUserCollisionException
thrown if there already exists an account with
the email address asserted by the credential
. Resolve this case by calling fetchProvidersForEmail(String)
and then asking the user to sign in using one of them.
See Also:
signInWithEmailAndPassword(String, String)
createUserWithEmailAndPassword(String, String)
signInAnonymously()
signInWithCustomToken(String)
Parameters | |
---|---|
credential |
AuthCredential |
Returns | |
---|---|
Task<AuthResult> |
Task of AuthResult with the result of the operation
|
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.IdTokenListener
s and an onAuthStateChanged(FirebaseAuth)
event in
all registered FirebaseAuth.AuthStateListener
s.
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.
FirebaseAuthInvalidCredentialsException
thrown if the token
format is
incorrect or if it corresponds to a different Firebase App
signInWithEmailAndPassword(String, String)
createUserWithEmailAndPassword(String, String)
signInWithCredential(AuthCredential)
signInAnonymously()
Parameters | |
---|---|
token |
String |
Returns | |
---|---|
Task<AuthResult> |
Task of AuthResult with the result of the operation
|
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.IdTokenListener
s and an onAuthStateChanged(FirebaseAuth)
event in
all registered FirebaseAuth.AuthStateListener
s.
This is equivalent to calling signInWithCredential(AuthCredential)
with an EmailAuthCredential
generated by getCredential(String, String)
.
Important: you must enable Email & Password accounts in the Firebase console before being able to use this method.
FirebaseAuthInvalidUserException
thrown if the user account corresponding to
email
does not exist or has been disabled
FirebaseAuthInvalidCredentialsException
thrown if the password
is wrong
See also:
createUserWithEmailAndPassword(String, String)
signInWithCredential(AuthCredential)
signInAnonymously()
signInWithCustomToken(String)
Parameters | |
---|---|
email |
String |
password |
String |
Returns | |
---|---|
Task<AuthResult> |
Task of AuthResult with the result of the operation
|
Tries to sign in a user with the given email address and link. This link should be generated by
sendSignInLinkToEmail(String, ActionCodeSettings)
.
Access the signed-in user with getCurrentUser()
.
Upon successful completion, this operation triggers an onIdTokenChanged(FirebaseAuth)
event in all registered FirebaseAuth.IdTokenListener
s and an onAuthStateChanged(FirebaseAuth)
event in
all registered FirebaseAuth.AuthStateListener
s.
This is equivalent to calling signInWithCredential(AuthCredential)
with an EmailAuthCredential
generated by getCredentialWithLink(String, String)
.
Important: you must enable Passwordless sign-in in the Firebase console before being able to use this method.
FirebaseAuthInvalidUserException
thrown if the user account corresponding to
email
does not exist or has been disabled
FirebaseAuthInvalidCredentialsException
thrown if the password
is wrong
See also:
createUserWithEmailAndPassword(String, String)
signInWithCredential(AuthCredential)
signInAnonymously()
signInWithCustomToken(String)
Parameters | |
---|---|
email |
String |
link |
String |
Returns | |
---|---|
Task<AuthResult> |
Task of AuthResult with the result of the operation
|
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.IdTokenListener
s and an onAuthStateChanged(FirebaseAuth)
event in
all registered FirebaseAuth.AuthStateListener
s.
Sets the user-facing language code to be the default app language.
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.
|