[cloud_firestore] fix NoSuchMethodError regression and add test (#1345)
Fix cloud_firestore regression and add test
diff --git a/packages/cloud_firestore/CHANGELOG.md b/packages/cloud_firestore/CHANGELOG.md
index a0033d4..39a58e8 100644
--- a/packages/cloud_firestore/CHANGELOG.md
+++ b/packages/cloud_firestore/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 0.9.7
+
+* Fixes a NoSuchMethodError when using getDocuments on iOS (introduced in 0.9.6).
+* Adds a driver test for getDocuments.
+
## 0.9.6
* On iOS, update null checking to match the recommended pattern usage in the Firebase documentation.
diff --git a/packages/cloud_firestore/example/pubspec.yaml b/packages/cloud_firestore/example/pubspec.yaml
index 09f65bb..7180f0d 100755
--- a/packages/cloud_firestore/example/pubspec.yaml
+++ b/packages/cloud_firestore/example/pubspec.yaml
@@ -8,5 +8,10 @@
path: ../
firebase_core: "^0.3.0"
+dev_dependencies:
+ flutter_driver:
+ sdk: flutter
+ test: any
+
flutter:
uses-material-design: true
diff --git a/packages/cloud_firestore/example/test_driver/cloud_firestore.dart b/packages/cloud_firestore/example/test_driver/cloud_firestore.dart
new file mode 100644
index 0000000..c564445
--- /dev/null
+++ b/packages/cloud_firestore/example/test_driver/cloud_firestore.dart
@@ -0,0 +1,34 @@
+import 'dart:async';
+import 'package:flutter_driver/driver_extension.dart';
+import 'package:flutter_test/flutter_test.dart';
+import 'package:cloud_firestore/cloud_firestore.dart';
+import 'package:firebase_core/firebase_core.dart';
+
+void main() {
+ final Completer<String> completer = Completer<String>();
+ enableFlutterDriverExtension(handler: (_) => completer.future);
+ tearDownAll(() => completer.complete(null));
+
+ group('$Firestore', () {
+ Firestore firestore;
+
+ setUp(() async {
+ final FirebaseApp app = await FirebaseApp.configure(
+ name: 'test',
+ options: const FirebaseOptions(
+ googleAppID: '1:79601577497:ios:5f2bcc6ba8cecddd',
+ gcmSenderID: '79601577497',
+ apiKey: 'AIzaSyArgmRGfB5kiQT6CunAOmKRVKEsxKmy6YI-G72PVU',
+ projectID: 'flutter-firestore',
+ ),
+ );
+ firestore = Firestore(app: app);
+ });
+
+ test('getDocuments', () async {
+ final CollectionReference reference = firestore.collection('messages');
+ final QuerySnapshot snapshot = await reference.getDocuments();
+ expect(snapshot.documents.length, isNonZero);
+ });
+ });
+}
diff --git a/packages/cloud_firestore/example/test_driver/cloud_firestore_test.dart b/packages/cloud_firestore/example/test_driver/cloud_firestore_test.dart
new file mode 100644
index 0000000..314b54a
--- /dev/null
+++ b/packages/cloud_firestore/example/test_driver/cloud_firestore_test.dart
@@ -0,0 +1,10 @@
+import 'package:flutter_driver/flutter_driver.dart';
+import 'package:test/test.dart';
+
+void main() {
+ test('CloudFirestore driver test', () async {
+ final FlutterDriver driver = await FlutterDriver.connect();
+ await driver.requestData(null, timeout: const Duration(minutes: 1));
+ driver.close();
+ });
+}
diff --git a/packages/cloud_firestore/ios/Classes/CloudFirestorePlugin.m b/packages/cloud_firestore/ios/Classes/CloudFirestorePlugin.m
index 9f100a7..22cd18a 100644
--- a/packages/cloud_firestore/ios/Classes/CloudFirestorePlugin.m
+++ b/packages/cloud_firestore/ios/Classes/CloudFirestorePlugin.m
@@ -450,7 +450,7 @@
}
[query getDocumentsWithCompletion:^(FIRQuerySnapshot *_Nullable snapshot,
NSError *_Nullable error) {
- if (snapshot != nil) {
+ if (snapshot == nil) {
result(getFlutterError(error));
return;
}
diff --git a/packages/cloud_firestore/pubspec.yaml b/packages/cloud_firestore/pubspec.yaml
index 4e23cca..f4b9318 100755
--- a/packages/cloud_firestore/pubspec.yaml
+++ b/packages/cloud_firestore/pubspec.yaml
@@ -3,7 +3,7 @@
live synchronization and offline support on Android and iOS.
author: Flutter Team <flutter-dev@googlegroups.com>
homepage: https://github.com/flutter/plugins/tree/master/packages/cloud_firestore
-version: 0.9.6
+version: 0.9.7
flutter:
plugin:
@@ -21,6 +21,9 @@
dev_dependencies:
flutter_test:
sdk: flutter
+ flutter_driver:
+ sdk: flutter
+ test: any
environment:
sdk: ">=2.0.0-dev.28.0 <3.0.0"