From 0898f0913d893271d15f30a9dc340676003979df Mon Sep 17 00:00:00 2001 From: Salakar Date: Wed, 12 Jul 2017 12:59:35 +0100 Subject: [PATCH] [js][ios][android][auth] checkActionCode now returns an actionType string in the result --- .../firebase/auth/RNFirebaseAuth.java | 24 +++++++++++++++---- ios/RNFirebase/auth/RNFirebaseAuth.m | 23 +++++++++++------- 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/android/src/main/java/io/invertase/firebase/auth/RNFirebaseAuth.java b/android/src/main/java/io/invertase/firebase/auth/RNFirebaseAuth.java index d5c26cf6..b99d9f1b 100644 --- a/android/src/main/java/io/invertase/firebase/auth/RNFirebaseAuth.java +++ b/android/src/main/java/io/invertase/firebase/auth/RNFirebaseAuth.java @@ -566,6 +566,7 @@ public class RNFirebaseAuth extends ReactContextBaseJavaModule { if (task.isSuccessful()) { Log.d(TAG, "checkActionCode:onComplete:success"); ActionCodeResult result = task.getResult(); + WritableMap writableMap = Arguments.createMap(); WritableMap dataMap = Arguments.createMap(); @@ -574,11 +575,24 @@ public class RNFirebaseAuth extends ReactContextBaseJavaModule { writableMap.putMap("data", dataMap); - // TODO figure out if these are required - web sdk only returns the 'email' and nothing else - // writableMap.putString("error", result.getData(ActionCodeResult.ERROR)); - // writableMap.putString("verifyEmail", result.getData(ActionCodeResult.VERIFY_EMAIL)); - // writableMap.putString("recoverEmail", result.getData(ActionCodeResult.RECOVER_EMAIL)); - // writableMap.putString("passwordReset", result.getData(ActionCodeResult.PASSWORD_RESET)); + String actionType = "UNKNOWN"; + + switch (result.getOperation()) { + case ActionCodeResult.ERROR: + actionType = "ERROR"; + break; + case ActionCodeResult.VERIFY_EMAIL: + actionType = "VERIFY_EMAIL"; + break; + case ActionCodeResult.RECOVER_EMAIL: + actionType = "RECOVER_EMAIL"; + break; + case ActionCodeResult.PASSWORD_RESET: + actionType = "PASSWORD_RESET"; + break; + } + + writableMap.putString("actionType", actionType); promise.resolve(writableMap); } else { diff --git a/ios/RNFirebase/auth/RNFirebaseAuth.m b/ios/RNFirebase/auth/RNFirebaseAuth.m index 457f163c..397c5a34 100644 --- a/ios/RNFirebase/auth/RNFirebaseAuth.m +++ b/ios/RNFirebase/auth/RNFirebaseAuth.m @@ -372,20 +372,27 @@ RCT_EXPORT_METHOD(checkActionCode:(NSString *) code resolver:(RCTPromiseResolveB if (error) { [self promiseRejectAuthException:reject error:error]; } else { + NSString *actionType = @"ERROR"; + switch (info.operation) { + case FIRActionCodeOperationPasswordReset: + actionType = @"PASSWORD_RESET"; + break; + case FIRActionCodeOperationVerifyEmail: + actionType = @"VERIFY_EMAIL"; + break; + case FIRActionCodeOperationUnknown: + actionType = @"UNKNOWN"; + break; + } + NSDictionary * result = @{ @"data": @{ @"email": [info dataForKey:FIRActionCodeEmailKey], @"fromEmail": [info dataForKey:FIRActionCodeFromEmailKey], - } + }, + @"actionType": actionType, }; - // TODO action code operation codes? - /* - FIRActionCodeOperationUnknown = 0, - FIRActionCodeOperationPasswordReset = 1, - FIRActionCodeOperationVerifyEmail = 2 - */ - resolve(result); } }];