diff --git a/src/Auth/Requests/UpdateAccount.cs b/src/Auth/Requests/UpdateAccount.cs
index ea3e775..613f242 100644
--- a/src/Auth/Requests/UpdateAccount.cs
+++ b/src/Auth/Requests/UpdateAccount.cs
@@ -2,6 +2,8 @@
{
public class UpdateAccountRequest : IdTokenRequest
{
+ public string Email { get; set; }
+
public string Password { get; set; }
public bool ReturnSecureToken { get; set; }
diff --git a/src/Auth/User.cs b/src/Auth/User.cs
index 03021d9..6dccbc9 100644
--- a/src/Auth/User.cs
+++ b/src/Auth/User.cs
@@ -91,6 +91,31 @@ public async Task DeleteAsync()
this.config.UserManager.DeleteExistingUser(this.Uid);
}
+ ///
+ /// Change user's Email address.
+ ///
+ /// The new Email address.
+ public async Task ChangeEmailAsync(string email)
+ {
+ var token = await this.GetIdTokenAsync().ConfigureAwait(false);
+ var result = await this.updateAccount.ExecuteAsync(new UpdateAccountRequest
+ {
+ IdToken = token,
+ Email = email,
+ ReturnSecureToken = true
+ }).ConfigureAwait(false);
+
+ this.Credential = new FirebaseCredential
+ {
+ ExpiresIn = result.ExpiresIn,
+ IdToken = result.IdToken,
+ ProviderType = this.Credential.ProviderType,
+ RefreshToken = result.RefreshToken
+ };
+
+ this.config.UserManager.UpdateExistingUser(this);
+ }
+
///
/// Change user's password.
///