diff --git a/packages/firebase_remote_config/CHANGELOG.md b/packages/firebase_remote_config/CHANGELOG.md index 30d482f3cc25..7bc7823f783f 100644 --- a/packages/firebase_remote_config/CHANGELOG.md +++ b/packages/firebase_remote_config/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.2.0+7 + +* Fix `Bad state: Future already completed` error when initially + calling `RemoteConfig.instance` multiple times in parallel. + ## 0.2.0+6 * Update documentation to reflect new repository location. diff --git a/packages/firebase_remote_config/lib/src/remote_config.dart b/packages/firebase_remote_config/lib/src/remote_config.dart index ea8362eac265..161a2b5b1447 100644 --- a/packages/firebase_remote_config/lib/src/remote_config.dart +++ b/packages/firebase_remote_config/lib/src/remote_config.dart @@ -33,12 +33,12 @@ class RemoteConfig extends ChangeNotifier { /// Gets the instance of RemoteConfig for the default Firebase app. static Future get instance async { if (!_instanceCompleter.isCompleted) { - _getRemoteConfigInstance(); + _instanceCompleter.complete(await _getRemoteConfigInstance()); } return _instanceCompleter.future; } - static void _getRemoteConfigInstance() async { + static Future _getRemoteConfigInstance() async { final Map properties = await channel.invokeMapMethod('RemoteConfig#instance'); @@ -53,7 +53,7 @@ class RemoteConfig extends ChangeNotifier { instance._remoteConfigSettings = remoteConfigSettings; instance._parameters = _parseRemoteConfigParameters(parameters: properties['parameters']); - _instanceCompleter.complete(instance); + return instance; } static Map _parseRemoteConfigParameters( diff --git a/packages/firebase_remote_config/pubspec.yaml b/packages/firebase_remote_config/pubspec.yaml index 7542f26a6b94..48de94cafc12 100644 --- a/packages/firebase_remote_config/pubspec.yaml +++ b/packages/firebase_remote_config/pubspec.yaml @@ -3,7 +3,7 @@ description: Flutter plugin for Firebase Remote Config. Update your application re-releasing. author: Flutter Team homepage: https://github.com/FirebaseExtended/flutterfire/tree/master/packages/firebase_remote_config -version: 0.2.0+6 +version: 0.2.0+7 dependencies: flutter: