Auth - Manage Users
If a user has signed in successfully you can get their account data
at any point with the getCurrentUser
method.
var user:FirebaseUser = FirebaseAuth.service.getCurrentUser();
if (user != null)
{
trace( "displayName: " + user.displayName );
trace( "email: " + user.email );
trace( "photo Uri: " + user.photoUri );
// The user's ID, unique to the Firebase project. Do NOT use this value to
// authenticate with your backend server, if you have one. Use
// FirebaseUser.getToken() instead.
trace( "identifier: " + user.identifier );
}
else
{
trace( "Not signed in" );
}
Provider specific profile information
To get the profile information retrieved from the sign-in providers linked to a user,
use the Vector array of UserInfo
objects.
var user:FirebaseUser = FirebaseAuth.service.getCurrentUser();
if (user != null)
{
for each (var info:UserInfo in user.providers)
{
trace( "provider: " + info.providerId );
trace( "identifier: " + info.identifier );
trace( "displayName: " + info.displayName );
trace( "email: " + info.email );
}
}
Update profile
You can update a user's basic profile information—the user's display name and profile
photo URL—with the updateProfile
method. For example:
var request:UserProfileChangeRequest = new UserProfileChangeRequestBuilder()
.setDisplayName( "Jane Q. User" )
.setPhotoUri( "https://example.com/jane-q-user/profile.jpg" )
.build();
FirebaseAuth.service.getCurrentUser().addEventListener(
FirebaseUserEvent.UPDATE_PROFILE_COMPLETE,
updateProfile_completeHandler );
FirebaseAuth.service.getCurrentUser().updateProfile( request );
You can use the FirebaseUserEvent.UPDATE_PROFILE_COMPLETE
event to listen for the completion
of the updateProfile
method.
private function updateProfile_completeHandler( event:FirebaseUserEvent ):void
{
trace( "updateProfile(): complete: "+event.success +"::"+event.message );
FirebaseAuth.service.getCurrentUser().removeEventListener(
FirebaseUserEvent.UPDATE_PROFILE_COMPLETE,
updateProfile_completeHandler );
}
Update email
You can set a user's email address with the updateEmail
method. For example:
FirebaseAuth.service.getCurrentUser().addEventListener(
FirebaseUserEvent.UPDATE_EMAIL_COMPLETE,
updateEmail_completeHandler );
FirebaseAuth.service.getCurrentUser().updateEmail( "user@example.com" );
You can use the FirebaseUserEvent.UPDATE_EMAIL_COMPLETE
event to listen for the completion
of the updateEmail
method.
private function updateEmail_completeHandler( event:FirebaseUserEvent ):void
{
trace( "updateEmail(): complete: "+event.success +"::"+event.message );
FirebaseAuth.service.getCurrentUser().removeEventListener(
FirebaseUserEvent.UPDATE_EMAIL_COMPLETE,
updateEmail_completeHandler );
}
Important: To set a user's email address, the user must have signed in recently. See Re-authenticate a user.
Verification email
You can send an address verification email to a user with the sendEmailVerification
method. For example:
FirebaseAuth.service.getCurrentUser().addEventListener(
FirebaseUserEvent.SEND_EMAIL_VERIFICATION_COMPLETE,
sendEmailVerification_completeHandler );
FirebaseAuth.service.getCurrentUser().sendEmailVerification();
private function sendEmailVerification_completeHandler( event:FirebaseUserEvent ):void
{
log( "sendEmailVerification(): complete: " + event.success +"::"+event.message );
FirebaseAuth.service.getCurrentUser().removeEventListener(
FirebaseUserEvent.SEND_EMAIL_VERIFICATION_COMPLETE,
sendEmailVerification_completeHandler );
}
You can customize the email template that is used in Authentication section of the Firebase console, on the Email Templates page. See Email Templates in Firebase Help Center.
Update Password
You can set a user's password with the updatePassword
method. For example:
FirebaseAuth.service.getCurrentUser().addEventListener(
FirebaseUserEvent.UPDATE_PASSWORD_COMPLETE,
updatePassword_completeHandler );
FirebaseAuth.service.getCurrentUser().updatePassword( "SOME-SECURE-PASSWORD" );
You can use the FirebaseUserEvent.UPDATE_PASSWORD_COMPLETE
event to listen for the completion
of the updatePassword
method.
private function updatePassword_completeHandler( event:FirebaseUserEvent ):void
{
trace( "updatePassword(): complete: "+event.success +"::"+event.message );
FirebaseAuth.service.getCurrentUser().removeEventListener(
FirebaseUserEvent.UPDATE_PASSWORD_COMPLETE,
updatePassword_completeHandler );
}
Important: To set a user's email address, the user must have signed in recently. See Re-authenticate a user.
Send a password reset email
You can send a password reset email to a user with the sendPasswordResetEmail method. For example:
You can customize the email template that is used in Authentication section of the Firebase console, on the Email Templates page. See Email Templates in Firebase Help Center.
You can also send password rest emails from the Firebase console.
Delete a user
You can delete a user account with the delete method. For example:
FirebaseAuth.service.getCurrentUser().addEventListener(
FirebaseUserEvent.DELETE_USER_COMPLETE,
deleteUser_completeHandler );
FirebaseAuth.service.getCurrentUser().deleteUser();
You can use the FirebaseUserEvent.DELETE_USER_COMPLETE
event to listen for the completion of this method.
private function deleteUser_completeHandler( event:FirebaseUserEvent ):void
{
trace( "deleteUser(): complete: " + event.success +"::"+event.message );
}
Once deleted getCurrentUser()
will return null
and your user will be signed out.
Re-authenticate a user
Some security-sensitive actions—such as deleting an account, setting a primary email address,
and changing a password—require that the user has recently signed in.
If you perform one of these actions, and the user signed in too long ago,
the action fails (event.success
will be false
).
When this happens, re-authenticate the user by getting new sign-in credentials
from the user and passing the credentials to reauthenticate
.
For example:
var credential:AuthCredential = EmailAuthProvider.getEmailAuthCredential( "user@example.com", "password1234" );
FirebaseAuth.service.getCurrentUser().addEventListener(
FirebaseUserEvent.REAUTHENTICATE_COMPLETE,
reauthenticate_completeHandler );
FirebaseAuth.service.getCurrentUser().reauthenticate( credential );
You can use the FirebaseUserEvent.REAUTHENTICATE_COMPLETE
event to listen for the completion of this method.
private function reauthenticate_completeHandler( event:FirebaseUserEvent ):void
{
FirebaseAuth.service.getCurrentUser().removeEventListener(
FirebaseUserEvent.REAUTHENTICATE_COMPLETE,
reauthenticate_completeHandler );
}
User Token
You may wish to authenticate a user on your server for actions in Firebase from your application. To do this you'll need the users authentication token.
FirebaseAuth.service.getCurrentUser().addEventListener(
FirebaseUserEvent.GET_TOKEN_COMPLETE,
getToken_completeHandler );
FirebaseAuth.service.getCurrentUser().getToken( true );
private function getToken_completeHandler(event:FirebaseUserEvent ):void
{
if (event.success)
{
// Success means the event has a valid token in event.data
trace( event.data );
}
FirebaseAuth.service.getCurrentUser().removeEventListener(
FirebaseUserEvent.GET_TOKEN_COMPLETE,
getToken_completeHandler );
}