From a63fb0f1f4d93995489b2b230c3320bce38ada7c Mon Sep 17 00:00:00 2001 From: Ashton Date: Sun, 1 Jul 2018 14:05:07 -0500 Subject: [PATCH 1/5] add support for firebase_auth updateEmail --- packages/firebase_auth/CHANGELOG.md | 4 +++ .../firebaseauth/FirebaseAuthPlugin.java | 25 +++++++++++++++++++ .../ios/Classes/FirebaseAuthPlugin.m | 5 ++++ packages/firebase_auth/lib/firebase_auth.dart | 12 +++++++++ .../test/firebase_auth_test.dart | 17 +++++++++++++ 5 files changed, 63 insertions(+) diff --git a/packages/firebase_auth/CHANGELOG.md b/packages/firebase_auth/CHANGELOG.md index fe9c4e70e40f..f048af748c73 100644 --- a/packages/firebase_auth/CHANGELOG.md +++ b/packages/firebase_auth/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.5.18 + +* Adding support for updateEmail in FirebaseAuth. + ## 0.5.17 * Adding support for FirebaseUser.delete. diff --git a/packages/firebase_auth/android/src/main/java/io/flutter/plugins/firebaseauth/FirebaseAuthPlugin.java b/packages/firebase_auth/android/src/main/java/io/flutter/plugins/firebaseauth/FirebaseAuthPlugin.java index 9e5c96fbf3e6..d75e8be0dd19 100755 --- a/packages/firebase_auth/android/src/main/java/io/flutter/plugins/firebaseauth/FirebaseAuthPlugin.java +++ b/packages/firebase_auth/android/src/main/java/io/flutter/plugins/firebaseauth/FirebaseAuthPlugin.java @@ -114,6 +114,9 @@ public void onMethodCall(MethodCall call, Result result) { case "updateProfile": handleUpdateProfile(call, result); break; + case "updateEmail": + handleUpdateEmail(call, result); + break; case "startListeningAuthState": handleStartListeningAuthState(call, result); break; @@ -450,6 +453,28 @@ public void onComplete(@NonNull Task task) { }); } + private void handleUpdateEmail(MethodCall call, final Result result) { + @SuppressWarnings("unchecked") + Map arguments = (Map) call.arguments; + String email = arguments.get("email"); + + firebaseAuth + .getCurrentUser() + .updateEmail(email) + .addOnCompleteListener( + new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (!task.isSuccessful()) { + Exception e = task.getException(); + result.error(ERROR_REASON_EXCEPTION, e.getMessage(), null); + } else { + result.success(null); + } + } + }); + } + private void handleStartListeningAuthState(MethodCall call, final Result result) { final int handle = nextHandle++; FirebaseAuth.AuthStateListener listener = diff --git a/packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.m b/packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.m index 6d7ab37efc22..092afcd2f6dc 100644 --- a/packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.m +++ b/packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.m @@ -187,6 +187,11 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result [changeRequest commitChangesWithCompletion:^(NSError *error) { [self sendResult:result forUser:nil error:error]; }]; + } else if ([@"updateEmail" isEqualToString:call.method]) { + NSString *toEmail = call.arguments[@"email"]; + [[FIRAuth auth].currentUser updateEmail:toEmail completion:^(NSError *_Nullable error) { + [self sendResult:result forUser:nil error:error]; + }]; } else if ([@"signInWithCustomToken" isEqualToString:call.method]) { NSString *token = call.arguments[@"token"]; [[FIRAuth auth] signInWithCustomToken:token diff --git a/packages/firebase_auth/lib/firebase_auth.dart b/packages/firebase_auth/lib/firebase_auth.dart index 3ce33be5c164..9e0a505f23db 100755 --- a/packages/firebase_auth/lib/firebase_auth.dart +++ b/packages/firebase_auth/lib/firebase_auth.dart @@ -369,6 +369,18 @@ class FirebaseAuth { return currentUser; } + Future updateEmail({ + @required String email, + }) async { + assert(email != null); + return await channel.invokeMethod( + 'updateEmail', + { + 'email': email, + }, + ); + } + Future updateProfile(UserUpdateInfo userUpdateInfo) async { assert(userUpdateInfo != null); return await channel.invokeMethod( diff --git a/packages/firebase_auth/test/firebase_auth_test.dart b/packages/firebase_auth/test/firebase_auth_test.dart index cbfbff521999..000dec4ef76a 100755 --- a/packages/firebase_auth/test/firebase_auth_test.dart +++ b/packages/firebase_auth/test/firebase_auth_test.dart @@ -44,6 +44,9 @@ void main() { case "updateProfile": return null; break; + case "updateEmail": + return null; + break; case "fetchProvidersForEmail": return new List(0); break; @@ -373,6 +376,20 @@ void main() { ]); }); + test('updateEmail', () async { + final String updatedEmail = 'atestemail@gmail.com'; + auth.updateEmail(email: updatedEmail); + expect( + log, + [ + isMethodCall( + 'updateEmail', + arguments: {'email': updatedEmail}, + ), + ], + ); + }); + test('signInWithCustomToken', () async { final FirebaseUser user = await auth.signInWithCustomToken(token: kMockCustomToken); From c71098e0b1a6436c806a4daca38d3557688f587d Mon Sep 17 00:00:00 2001 From: thmsdnnr Date: Sun, 1 Jul 2018 15:24:06 -0500 Subject: [PATCH 2/5] add names to AUTHORS --- AUTHORS | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index a5f10bb2497f..c5dd4a3355f1 100644 --- a/AUTHORS +++ b/AUTHORS @@ -14,4 +14,6 @@ Hayden Flinner Stefano Rodriguez Salvatore Giordano Brian Armstrong -Fabricio Nogueira +Fabricio Nogueira +Ashton Thomas +Thomas Danner From 8e416713e677bb11b1b3e7b59022995bd7b42048 Mon Sep 17 00:00:00 2001 From: thmsdnnr Date: Sun, 1 Jul 2018 16:17:49 -0500 Subject: [PATCH 3/5] flutter plugin tools fixup ios --- packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.h | 2 +- packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.m | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.h b/packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.h index ba6e71f1236f..49061239c581 100644 --- a/packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.h +++ b/packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.h @@ -6,5 +6,5 @@ #import "Firebase/Firebase.h" -@interface FLTFirebaseAuthPlugin : NSObject +@interface FLTFirebaseAuthPlugin : NSObject @end diff --git a/packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.m b/packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.m index 092afcd2f6dc..548e8ace0caa 100644 --- a/packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.m +++ b/packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.m @@ -189,9 +189,10 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result }]; } else if ([@"updateEmail" isEqualToString:call.method]) { NSString *toEmail = call.arguments[@"email"]; - [[FIRAuth auth].currentUser updateEmail:toEmail completion:^(NSError *_Nullable error) { - [self sendResult:result forUser:nil error:error]; - }]; + [[FIRAuth auth].currentUser updateEmail:toEmail + completion:^(NSError *_Nullable error) { + [self sendResult:result forUser:nil error:error]; + }]; } else if ([@"signInWithCustomToken" isEqualToString:call.method]) { NSString *token = call.arguments[@"token"]; [[FIRAuth auth] signInWithCustomToken:token From 16a743596760d36f7a856a2b0c19145fa47828cf Mon Sep 17 00:00:00 2001 From: thmsdnnr Date: Sun, 1 Jul 2018 16:23:33 -0500 Subject: [PATCH 4/5] manually revert autoformat space addition --- packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.h b/packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.h index 49061239c581..ba6e71f1236f 100644 --- a/packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.h +++ b/packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.h @@ -6,5 +6,5 @@ #import "Firebase/Firebase.h" -@interface FLTFirebaseAuthPlugin : NSObject +@interface FLTFirebaseAuthPlugin : NSObject @end From 39d234ee4ee0819a08a9fd0c4a07a5cfc5e03dbb Mon Sep 17 00:00:00 2001 From: thmsdnnr Date: Wed, 25 Jul 2018 10:58:44 -0500 Subject: [PATCH 5/5] bump pubspec to 0.5.18 --- packages/firebase_auth/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/firebase_auth/pubspec.yaml b/packages/firebase_auth/pubspec.yaml index 154aa2af217f..f7adf0ea05a5 100755 --- a/packages/firebase_auth/pubspec.yaml +++ b/packages/firebase_auth/pubspec.yaml @@ -4,7 +4,7 @@ description: Flutter plugin for Firebase Auth, enabling Android and iOS like Google, Facebook and Twitter. author: Flutter Team homepage: https://github.com/flutter/plugins/tree/master/packages/firebase_auth -version: 0.5.17 +version: 0.5.18 flutter: plugin: