From 1ccb547117ec3111e770b58df1287c84dcecdb45 Mon Sep 17 00:00:00 2001 From: Collin Jackson Date: Wed, 6 Mar 2019 03:18:13 -0800 Subject: [PATCH 1/4] Fix for cloud_functions on iOS region is null --- packages/cloud_functions/CHANGELOG.md | 4 ++++ packages/cloud_functions/ios/Classes/CloudFunctionsPlugin.m | 2 +- packages/cloud_functions/pubspec.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/cloud_functions/CHANGELOG.md b/packages/cloud_functions/CHANGELOG.md index 47cd49f8c1b1..c7eea5e3dca4 100644 --- a/packages/cloud_functions/CHANGELOG.md +++ b/packages/cloud_functions/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.2 + +* Fix crash on iOS when using a null region + ## 0.1.1+1 * Log messages about automatic configuration of the default app are now less confusing. diff --git a/packages/cloud_functions/ios/Classes/CloudFunctionsPlugin.m b/packages/cloud_functions/ios/Classes/CloudFunctionsPlugin.m index 0ac54ac92459..8a88d816b9d2 100644 --- a/packages/cloud_functions/ios/Classes/CloudFunctionsPlugin.m +++ b/packages/cloud_functions/ios/Classes/CloudFunctionsPlugin.m @@ -41,7 +41,7 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result NSString *region = call.arguments[@"region"]; FIRApp *app = [FIRApp appNamed:appName]; FIRFunctions *functions; - if (region != nil) { + if (region != nil && region != (id)[NSNull null]) { functions = [FIRFunctions functionsForApp:app region:region]; } else { functions = [FIRFunctions functionsForApp:app]; diff --git a/packages/cloud_functions/pubspec.yaml b/packages/cloud_functions/pubspec.yaml index 4efaa4fbc660..7803052c8f40 100644 --- a/packages/cloud_functions/pubspec.yaml +++ b/packages/cloud_functions/pubspec.yaml @@ -1,6 +1,6 @@ name: cloud_functions description: Flutter plugin for Cloud Functions. -version: 0.1.1+1 +version: 0.1.2 author: Flutter Team homepage: https://github.com/flutter/plugins/tree/master/packages/cloud_functions From ec0af05aa4a1294f25acc953d6e7e80b4e87e288 Mon Sep 17 00:00:00 2001 From: Collin Jackson Date: Wed, 6 Mar 2019 04:17:20 -0800 Subject: [PATCH 2/4] Fix build errors due to ambiguous version --- packages/cloud_functions/CHANGELOG.md | 3 ++- packages/cloud_functions/ios/Classes/CloudFunctionsPlugin.m | 6 +++--- packages/cloud_functions/ios/cloud_functions.podspec | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/cloud_functions/CHANGELOG.md b/packages/cloud_functions/CHANGELOG.md index c7eea5e3dca4..31af4b962078 100644 --- a/packages/cloud_functions/CHANGELOG.md +++ b/packages/cloud_functions/CHANGELOG.md @@ -1,6 +1,7 @@ ## 0.1.2 -* Fix crash on iOS when using a null region +* Specifying a version for Cloud Functions CocoaPod dependency to prevent build errors on iOS. +* Fix on iOS when using a null region. ## 0.1.1+1 diff --git a/packages/cloud_functions/ios/Classes/CloudFunctionsPlugin.m b/packages/cloud_functions/ios/Classes/CloudFunctionsPlugin.m index 8a88d816b9d2..03efb0a95fd9 100644 --- a/packages/cloud_functions/ios/Classes/CloudFunctionsPlugin.m +++ b/packages/cloud_functions/ios/Classes/CloudFunctionsPlugin.m @@ -46,9 +46,9 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result } else { functions = [FIRFunctions functionsForApp:app]; } - [functions callFunction:functionName - withObject:parameters - completion:^(FIRHTTPSCallableResult *callableResult, NSError *error) { + FIRHTTPSCallable *function = [functions HTTPSCallableWithName:functionName]; + [function callWithObject:parameters + completion:^(FIRHTTPSCallableResult *callableResult, NSError *error) { if (error) { FlutterError *flutterError; if (error.domain == FIRFunctionsErrorDomain) { diff --git a/packages/cloud_functions/ios/cloud_functions.podspec b/packages/cloud_functions/ios/cloud_functions.podspec index 6c1998dd7e1a..cd8a7727235e 100644 --- a/packages/cloud_functions/ios/cloud_functions.podspec +++ b/packages/cloud_functions/ios/cloud_functions.podspec @@ -17,7 +17,7 @@ A new flutter plugin project. s.ios.deployment_target = '8.0' s.dependency 'Flutter' s.dependency 'Firebase/Core' - s.dependency 'Firebase/Functions' + s.dependency 'Firebase/Functions', '~> 5.18' s.static_framework = true end From d1d1801c56f779d3f9a40edc84d12e73232ecd67 Mon Sep 17 00:00:00 2001 From: Collin Jackson Date: Wed, 6 Mar 2019 04:25:27 -0800 Subject: [PATCH 3/4] Reformat --- .../ios/Classes/CloudFunctionsPlugin.m | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/packages/cloud_functions/ios/Classes/CloudFunctionsPlugin.m b/packages/cloud_functions/ios/Classes/CloudFunctionsPlugin.m index 03efb0a95fd9..192826cddcc5 100644 --- a/packages/cloud_functions/ios/Classes/CloudFunctionsPlugin.m +++ b/packages/cloud_functions/ios/Classes/CloudFunctionsPlugin.m @@ -48,35 +48,35 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result } FIRHTTPSCallable *function = [functions HTTPSCallableWithName:functionName]; [function callWithObject:parameters - completion:^(FIRHTTPSCallableResult *callableResult, NSError *error) { - if (error) { - FlutterError *flutterError; - if (error.domain == FIRFunctionsErrorDomain) { - NSDictionary *details = [NSMutableDictionary dictionary]; - [details setValue:[self mapFunctionsErrorCodes:error.code] forKey:@"code"]; - if (error.localizedDescription != nil) { - [details setValue:error.localizedDescription forKey:@"message"]; - } - if (error.userInfo[FIRFunctionsErrorDetailsKey] != nil) { - [details setValue:error.userInfo[FIRFunctionsErrorDetailsKey] - forKey:@"details"]; - } + completion:^(FIRHTTPSCallableResult *callableResult, NSError *error) { + if (error) { + FlutterError *flutterError; + if (error.domain == FIRFunctionsErrorDomain) { + NSDictionary *details = [NSMutableDictionary dictionary]; + [details setValue:[self mapFunctionsErrorCodes:error.code] forKey:@"code"]; + if (error.localizedDescription != nil) { + [details setValue:error.localizedDescription forKey:@"message"]; + } + if (error.userInfo[FIRFunctionsErrorDetailsKey] != nil) { + [details setValue:error.userInfo[FIRFunctionsErrorDetailsKey] + forKey:@"details"]; + } - flutterError = - [FlutterError errorWithCode:@"functionsError" - message:@"Firebase function failed with exception." - details:details]; - } else { - flutterError = [FlutterError - errorWithCode:[NSString stringWithFormat:@"%ld", error.code] - message:error.localizedDescription - details:nil]; - } - result(flutterError); - } else { - result(callableResult.data); - } - }]; + flutterError = + [FlutterError errorWithCode:@"functionsError" + message:@"Firebase function failed with exception." + details:details]; + } else { + flutterError = [FlutterError + errorWithCode:[NSString stringWithFormat:@"%ld", error.code] + message:error.localizedDescription + details:nil]; + } + result(flutterError); + } else { + result(callableResult.data); + } + }]; } else { result(FlutterMethodNotImplemented); } From cfa53ff878220f803104bacf52314e9494d9eb82 Mon Sep 17 00:00:00 2001 From: Collin Jackson Date: Wed, 6 Mar 2019 11:35:30 -0800 Subject: [PATCH 4/4] Update example app firebase_core dependency --- packages/cloud_functions/CHANGELOG.md | 1 + packages/cloud_functions/example/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/cloud_functions/CHANGELOG.md b/packages/cloud_functions/CHANGELOG.md index 31af4b962078..24f1d31384ac 100644 --- a/packages/cloud_functions/CHANGELOG.md +++ b/packages/cloud_functions/CHANGELOG.md @@ -2,6 +2,7 @@ * Specifying a version for Cloud Functions CocoaPod dependency to prevent build errors on iOS. * Fix on iOS when using a null region. +* Upgrade the firebase_core dependency of the example app. ## 0.1.1+1 diff --git a/packages/cloud_functions/example/pubspec.yaml b/packages/cloud_functions/example/pubspec.yaml index 8510d72e0704..673eb83efc24 100644 --- a/packages/cloud_functions/example/pubspec.yaml +++ b/packages/cloud_functions/example/pubspec.yaml @@ -9,7 +9,7 @@ dependencies: cupertino_icons: ^0.1.2 cloud_functions: path: .. - firebase_core: 0.3.0 + firebase_core: ^0.3.1 dev_dependencies: flutter_test: