From 25506479d3295a452db9a2be13d69af8be401a9d Mon Sep 17 00:00:00 2001 From: Chris Bianca Date: Tue, 8 May 2018 15:36:40 +0100 Subject: [PATCH] [firestore][android] Add support for firestore v16 --- android/build.gradle | 30 ++-- ...NFirebaseFirestoreCollectionReference.java | 23 ++- .../RNFirebaseFirestoreDocumentReference.java | 14 +- bridge/android/app/build.gradle | 30 ++-- bridge/android/build.gradle | 5 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- bridge/e2e/config/config.e2e.js | 3 +- .../e2e/firestore/collectionReference.e2e.js | 14 +- bridge/ios/Podfile.lock | 52 +++---- bridge/ios/testing.xcodeproj/project.pbxproj | 8 +- bridge/package-lock.json | 6 +- .../RNFirebaseFirestoreCollectionReference.m | 13 +- lib/index.d.ts | 33 ++--- lib/index.js | 3 +- lib/modules/firestore/CollectionReference.js | 8 +- lib/modules/firestore/DocumentReference.js | 7 +- lib/modules/firestore/Query.js | 20 +-- lib/modules/firestore/types.js | 9 +- package-lock.json | 2 +- tests/android/app/build.gradle | 27 ++-- tests/android/build.gradle | 4 +- tests/ios/Podfile.lock | 135 +++++++++--------- .../firestore/collectionReferenceTests.js | 14 +- 23 files changed, 212 insertions(+), 250 deletions(-) mode change 100755 => 100644 bridge/ios/testing.xcodeproj/project.pbxproj diff --git a/android/build.gradle b/android/build.gradle index bb5b03cc..e69632aa 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -17,7 +17,6 @@ apply plugin: 'com.android.library' def DEFAULT_COMPILE_SDK_VERSION = 27 def DEFAULT_BUILD_TOOLS_VERSION = "27.0.3" def DEFAULT_TARGET_SDK_VERSION = 26 -def DEFAULT_FIREBASE_VERSION = "12.0.0" def DEFAULT_SUPPORT_LIB_VERSION = "27.0.2" android { @@ -82,28 +81,27 @@ rootProject.gradle.buildFinished { buildResult -> } } -def firebaseVersion = rootProject.hasProperty('googlePlayServicesVersion') ? rootProject.googlePlayServicesVersion : DEFAULT_FIREBASE_VERSION def supportVersion = rootProject.hasProperty('supportLibVersion') ? rootProject.supportLibVersion : DEFAULT_SUPPORT_LIB_VERSION dependencies { // compile fileTree(include: ['*.jar'], dir: 'libs') api "com.facebook.react:react-native:+" // From node_modules api "com.android.support:support-v4:$supportVersion" - compileOnly 'me.leolin:ShortcutBadger:1.1.21@aar' - compileOnly "com.google.android.gms:play-services-base:$firebaseVersion" - compileOnly "com.google.firebase:firebase-core:$firebaseVersion" - compileOnly "com.google.firebase:firebase-config:$firebaseVersion" - compileOnly "com.google.firebase:firebase-auth:$firebaseVersion" - compileOnly "com.google.firebase:firebase-database:$firebaseVersion" - compileOnly "com.google.firebase:firebase-storage:$firebaseVersion" - compileOnly "com.google.firebase:firebase-messaging:$firebaseVersion" - compileOnly "com.google.firebase:firebase-crash:$firebaseVersion" - compileOnly "com.google.firebase:firebase-perf:$firebaseVersion" - compileOnly "com.google.firebase:firebase-ads:$firebaseVersion" - compileOnly "com.google.firebase:firebase-firestore:$firebaseVersion" - compileOnly "com.google.firebase:firebase-invites:$firebaseVersion" - compileOnly "com.google.firebase:firebase-functions:$firebaseVersion" compileOnly('com.crashlytics.sdk.android:crashlytics:2.9.1@aar') { transitive = true } + compileOnly "com.google.android.gms:play-services-base:15.0.0" + compileOnly "com.google.firebase:firebase-ads:15.0.0" + compileOnly "com.google.firebase:firebase-auth:15.1.0" + compileOnly "com.google.firebase:firebase-config:15.0.0" + compileOnly "com.google.firebase:firebase-core:15.0.2" + compileOnly "com.google.firebase:firebase-crash:15.0.2" + compileOnly "com.google.firebase:firebase-database:15.0.0" + compileOnly "com.google.firebase:firebase-firestore:16.0.0" + compileOnly "com.google.firebase:firebase-functions:15.0.0" + compileOnly "com.google.firebase:firebase-invites:15.0.1" + compileOnly "com.google.firebase:firebase-storage:15.0.2" + compileOnly "com.google.firebase:firebase-messaging:15.0.2" + compileOnly "com.google.firebase:firebase-perf:15.1.0" + compileOnly 'me.leolin:ShortcutBadger:1.1.21@aar' } diff --git a/android/src/main/java/io/invertase/firebase/firestore/RNFirebaseFirestoreCollectionReference.java b/android/src/main/java/io/invertase/firebase/firestore/RNFirebaseFirestoreCollectionReference.java index 517a0ec3..007faea4 100644 --- a/android/src/main/java/io/invertase/firebase/firestore/RNFirebaseFirestoreCollectionReference.java +++ b/android/src/main/java/io/invertase/firebase/firestore/RNFirebaseFirestoreCollectionReference.java @@ -12,14 +12,13 @@ import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.WritableMap; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; -import com.google.firebase.firestore.DocumentListenOptions; import com.google.firebase.firestore.EventListener; import com.google.firebase.firestore.FieldPath; import com.google.firebase.firestore.FirebaseFirestore; import com.google.firebase.firestore.FirebaseFirestoreException; import com.google.firebase.firestore.ListenerRegistration; +import com.google.firebase.firestore.MetadataChanges; import com.google.firebase.firestore.Query; -import com.google.firebase.firestore.QueryListenOptions; import com.google.firebase.firestore.QuerySnapshot; import java.util.ArrayList; @@ -92,19 +91,17 @@ public class RNFirebaseFirestoreCollectionReference { } } }; - QueryListenOptions options = new QueryListenOptions(); - if (queryListenOptions != null) { - if (queryListenOptions.hasKey("includeDocumentMetadataChanges") - && queryListenOptions.getBoolean("includeDocumentMetadataChanges")) { - options.includeDocumentMetadataChanges(); - } - if (queryListenOptions.hasKey("includeQueryMetadataChanges") - && queryListenOptions.getBoolean("includeQueryMetadataChanges")) { - options.includeQueryMetadataChanges(); - } + MetadataChanges metadataChanges; + + if (queryListenOptions != null + && queryListenOptions.hasKey("includeMetadataChanges") + && queryListenOptions.getBoolean("includeMetadataChanges")) { + metadataChanges = MetadataChanges.INCLUDE; + } else { + metadataChanges = MetadataChanges.EXCLUDE; } - ListenerRegistration listenerRegistration = this.query.addSnapshotListener(options, listener); + ListenerRegistration listenerRegistration = this.query.addSnapshotListener(metadataChanges, listener); collectionSnapshotListeners.put(listenerId, listenerRegistration); } } diff --git a/android/src/main/java/io/invertase/firebase/firestore/RNFirebaseFirestoreDocumentReference.java b/android/src/main/java/io/invertase/firebase/firestore/RNFirebaseFirestoreDocumentReference.java index 08eb6269..494df23b 100644 --- a/android/src/main/java/io/invertase/firebase/firestore/RNFirebaseFirestoreDocumentReference.java +++ b/android/src/main/java/io/invertase/firebase/firestore/RNFirebaseFirestoreDocumentReference.java @@ -10,12 +10,12 @@ import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.WritableMap; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; -import com.google.firebase.firestore.DocumentListenOptions; import com.google.firebase.firestore.DocumentReference; import com.google.firebase.firestore.DocumentSnapshot; import com.google.firebase.firestore.EventListener; import com.google.firebase.firestore.FirebaseFirestoreException; import com.google.firebase.firestore.ListenerRegistration; +import com.google.firebase.firestore.MetadataChanges; import com.google.firebase.firestore.SetOptions; import java.util.HashMap; @@ -94,11 +94,15 @@ public class RNFirebaseFirestoreDocumentReference { } } }; - DocumentListenOptions options = new DocumentListenOptions(); - if (docListenOptions != null && docListenOptions.hasKey("includeMetadataChanges") && docListenOptions.getBoolean("includeMetadataChanges")) { - options.includeMetadataChanges(); + MetadataChanges metadataChanges; + if (docListenOptions != null + && docListenOptions.hasKey("includeMetadataChanges") + && docListenOptions.getBoolean("includeMetadataChanges")) { + metadataChanges = MetadataChanges.INCLUDE; + } else { + metadataChanges = MetadataChanges.EXCLUDE; } - ListenerRegistration listenerRegistration = this.ref.addSnapshotListener(options, listener); + ListenerRegistration listenerRegistration = this.ref.addSnapshotListener(metadataChanges, listener); documentSnapshotListeners.put(listenerId, listenerRegistration); } } diff --git a/bridge/android/app/build.gradle b/bridge/android/app/build.gradle index 2d001928..3620a38e 100755 --- a/bridge/android/app/build.gradle +++ b/bridge/android/app/build.gradle @@ -78,8 +78,6 @@ android { } } -project.ext.firebaseVersion = '12.0.0' - dependencies { //noinspection GradleDynamicVersion implementation "com.facebook.react:react-native:+" @@ -90,22 +88,22 @@ dependencies { implementation project(':bridge') implementation fileTree(dir: "libs", include: ["*.jar"]) - implementation "com.google.android.gms:play-services-base:$firebaseVersion" - implementation "com.google.firebase:firebase-ads:$firebaseVersion" - implementation "com.google.firebase:firebase-auth:$firebaseVersion" - implementation "com.google.firebase:firebase-config:$firebaseVersion" - implementation "com.google.firebase:firebase-core:$firebaseVersion" - implementation "com.google.firebase:firebase-crash:$firebaseVersion" - implementation "com.google.firebase:firebase-database:$firebaseVersion" - implementation "com.google.firebase:firebase-messaging:$firebaseVersion" - implementation "com.google.firebase:firebase-perf:$firebaseVersion" - implementation "com.google.firebase:firebase-storage:$firebaseVersion" - implementation "com.google.firebase:firebase-firestore:$firebaseVersion" - implementation "com.google.firebase:firebase-invites:$firebaseVersion" - implementation "com.google.firebase:firebase-functions:$firebaseVersion" implementation('com.crashlytics.sdk.android:crashlytics:2.9.1@aar') { - transitive = true + transitive = true } + implementation "com.google.android.gms:play-services-base:15.0.0" + implementation "com.google.firebase:firebase-ads:15.0.0" + implementation "com.google.firebase:firebase-auth:15.1.0" + implementation "com.google.firebase:firebase-config:15.0.0" + implementation "com.google.firebase:firebase-core:15.0.2" + implementation "com.google.firebase:firebase-crash:15.0.2" + implementation "com.google.firebase:firebase-database:15.0.0" + implementation "com.google.firebase:firebase-firestore:16.0.0" + implementation "com.google.firebase:firebase-functions:15.0.0" + implementation "com.google.firebase:firebase-invites:15.0.1" + implementation "com.google.firebase:firebase-storage:15.0.2" + implementation "com.google.firebase:firebase-messaging:15.0.2" + implementation "com.google.firebase:firebase-perf:15.1.0" implementation "com.android.support:appcompat-v7:27.1.0" implementation fileTree(dir: "libs", include: ["*.jar"]) androidTestImplementation(project(path: ":detox")) diff --git a/bridge/android/build.gradle b/bridge/android/build.gradle index 26b405aa..95c0fc8d 100755 --- a/bridge/android/build.gradle +++ b/bridge/android/build.gradle @@ -7,8 +7,8 @@ buildscript { } } dependencies { - classpath 'com.android.tools.build:gradle:3.0.1' - classpath 'com.google.gms:google-services:3.1.2' + classpath 'com.android.tools.build:gradle:3.1.2' + classpath 'com.google.gms:google-services:3.2.1' classpath 'com.google.firebase:firebase-plugins:1.1.1' classpath 'io.fabric.tools:gradle:1.25.1' } @@ -47,4 +47,3 @@ subprojects { } } } - diff --git a/bridge/android/gradle/wrapper/gradle-wrapper.properties b/bridge/android/gradle/wrapper/gradle-wrapper.properties index a38b50a7..7d98137c 100755 --- a/bridge/android/gradle/wrapper/gradle-wrapper.properties +++ b/bridge/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip diff --git a/bridge/e2e/config/config.e2e.js b/bridge/e2e/config/config.e2e.js index 844d4585..18cc4c4a 100644 --- a/bridge/e2e/config/config.e2e.js +++ b/bridge/e2e/config/config.e2e.js @@ -70,7 +70,8 @@ describe('config()', () => { should.equal(keys.length, 2); }); - it('get all keys as an array if no prefix provided', async () => { + xit('get all keys as an array if no prefix provided', async () => { + // TODO flakey on Android const keys = await firebase.config().getKeysByPrefix(); keys.should.be.Array(); should.equal(keys.length, 4); diff --git a/bridge/e2e/firestore/collectionReference.e2e.js b/bridge/e2e/firestore/collectionReference.e2e.js index 115712d9..cccaaac6 100644 --- a/bridge/e2e/firestore/collectionReference.e2e.js +++ b/bridge/e2e/firestore/collectionReference.e2e.js @@ -415,8 +415,7 @@ describe('firestore()', () => { // await new Promise(resolve2 => { // unsubscribe = collectionRef.onSnapshot( // { - // includeQueryMetadataChanges: true, - // includeDocumentMetadataChanges: true, + // includeMetadataChanges: true, // }, // snapshot => { // snapshot.forEach(doc => callback(doc.data())); @@ -504,8 +503,7 @@ describe('firestore()', () => { // }; // unsubscribe = collectionRef.onSnapshot( // { - // includeQueryMetadataChanges: true, - // includeDocumentMetadataChanges: true, + // includeMetadataChanges: true, // }, // observer // ); @@ -555,7 +553,7 @@ describe('firestore()', () => { // (() => { // colRef.onSnapshot( // { - // includeQueryMetadataChanges: true, + // includeMetadataChanges: true, // }, // () => {}, // 'error' @@ -566,7 +564,7 @@ describe('firestore()', () => { // (() => { // colRef.onSnapshot( // { - // includeQueryMetadataChanges: true, + // includeMetadataChanges: true, // }, // { // next: () => {}, @@ -579,7 +577,7 @@ describe('firestore()', () => { // (() => { // colRef.onSnapshot( // { - // includeQueryMetadataChanges: true, + // includeMetadataChanges: true, // }, // { // next: 'error', @@ -591,7 +589,7 @@ describe('firestore()', () => { // (() => { // colRef.onSnapshot( // { - // includeQueryMetadataChanges: true, + // includeMetadataChanges: true, // }, // 'error' // ); diff --git a/bridge/ios/Podfile.lock b/bridge/ios/Podfile.lock index 337262fb..465d68c0 100644 --- a/bridge/ios/Podfile.lock +++ b/bridge/ios/Podfile.lock @@ -139,27 +139,27 @@ PODS: - GoogleToolboxForMac/NSString+URLArguments (~> 2.1) - GTMOAuth2 (~> 1.0) - GTMSessionFetcher/Core (~> 1.1) - - GoogleToolboxForMac/Core (2.1.3): - - GoogleToolboxForMac/Defines (= 2.1.3) - - GoogleToolboxForMac/DebugUtils (2.1.3): - - GoogleToolboxForMac/Defines (= 2.1.3) - - GoogleToolboxForMac/Defines (2.1.3) - - GoogleToolboxForMac/Logger (2.1.3): - - GoogleToolboxForMac/Defines (= 2.1.3) - - GoogleToolboxForMac/NSData+zlib (2.1.3): - - GoogleToolboxForMac/Defines (= 2.1.3) - - GoogleToolboxForMac/NSDictionary+URLArguments (2.1.3): - - GoogleToolboxForMac/DebugUtils (= 2.1.3) - - GoogleToolboxForMac/Defines (= 2.1.3) - - GoogleToolboxForMac/NSString+URLArguments (= 2.1.3) - - GoogleToolboxForMac/NSString+URLArguments (2.1.3) - - GoogleToolboxForMac/StringEncoding (2.1.3): - - GoogleToolboxForMac/Defines (= 2.1.3) - - GoogleToolboxForMac/URLBuilder (2.1.3): - - GoogleToolboxForMac/Core (= 2.1.3) - - GoogleToolboxForMac/Defines (= 2.1.3) - - GoogleToolboxForMac/NSDictionary+URLArguments (= 2.1.3) - - GoogleToolboxForMac/NSString+URLArguments (= 2.1.3) + - GoogleToolboxForMac/Core (2.1.4): + - GoogleToolboxForMac/Defines (= 2.1.4) + - GoogleToolboxForMac/DebugUtils (2.1.4): + - GoogleToolboxForMac/Defines (= 2.1.4) + - GoogleToolboxForMac/Defines (2.1.4) + - GoogleToolboxForMac/Logger (2.1.4): + - GoogleToolboxForMac/Defines (= 2.1.4) + - GoogleToolboxForMac/NSData+zlib (2.1.4): + - GoogleToolboxForMac/Defines (= 2.1.4) + - GoogleToolboxForMac/NSDictionary+URLArguments (2.1.4): + - GoogleToolboxForMac/DebugUtils (= 2.1.4) + - GoogleToolboxForMac/Defines (= 2.1.4) + - GoogleToolboxForMac/NSString+URLArguments (= 2.1.4) + - GoogleToolboxForMac/NSString+URLArguments (2.1.4) + - GoogleToolboxForMac/StringEncoding (2.1.4): + - GoogleToolboxForMac/Defines (= 2.1.4) + - GoogleToolboxForMac/URLBuilder (2.1.4): + - GoogleToolboxForMac/Core (= 2.1.4) + - GoogleToolboxForMac/Defines (= 2.1.4) + - GoogleToolboxForMac/NSDictionary+URLArguments (= 2.1.4) + - GoogleToolboxForMac/NSString+URLArguments (= 2.1.4) - gRPC (1.11.0): - gRPC-RxLibrary (= 1.11.0) - gRPC/Main (= 1.11.0) @@ -268,7 +268,7 @@ SPEC CHECKSUMS: Google-Mobile-Ads-SDK: 7404f68120ae8682afeb5af001fbf4aad731c78e GoogleAPIClientForREST: f7951c455df271bc6259b3ddb4073d0026475ccf GoogleSignIn: d9ef55b10f0aa401a5de2747f59b725e4b9732ac - GoogleToolboxForMac: 2501e2ad72a52eb3dfe7bd9aee7dad11b858bd20 + GoogleToolboxForMac: 91c824d21e85b31c2aae9bb011c5027c9b4e738f gRPC: 70703dc9ba31c72341fc7f37745cc1c379edee96 gRPC-Core: 164639cd8ae18ca8b65477fafb2efbaecf4f181a gRPC-ProtoRPC: bb5fddf3424aa4fad74d76736578a79fe40e244e @@ -278,10 +278,10 @@ SPEC CHECKSUMS: leveldb-library: 08cba283675b7ed2d99629a4bc5fd052cd2bb6a5 nanopb: 5601e6bca2dbf1ed831b519092ec110f66982ca3 Protobuf: 8a9838fba8dae3389230e1b7f8c104aa32389c03 - React: 573d89cf10312b17920df6328eaf9ab8059283bf - RNFirebase: 05ef1e1c1681af418f3500fda194a2d17d45be07 - yoga: 9403c2451c1b47d8cee3e4f1b6fd0ececc63839c + React: aa2040dbb6f317b95314968021bd2888816e03d5 + RNFirebase: 2b25fd2e60269f26bb0a76c71dcc942b35a77df0 + yoga: a23273df0088bf7f2bb7e5d7b00044ea57a2a54a PODFILE CHECKSUM: 582ceaad051470812ad9203e13b5ea8ad20c78ac -COCOAPODS: 1.3.1 +COCOAPODS: 1.4.0 diff --git a/bridge/ios/testing.xcodeproj/project.pbxproj b/bridge/ios/testing.xcodeproj/project.pbxproj old mode 100755 new mode 100644 index 344035b6..ae6883f8 --- a/bridge/ios/testing.xcodeproj/project.pbxproj +++ b/bridge/ios/testing.xcodeproj/project.pbxproj @@ -1029,11 +1029,15 @@ "${PODS_ROOT}/FirebaseInvites/Resources/GPPACLPickerResources.bundle", "${PODS_ROOT}/GTMOAuth2/Source/Touch/GTMOAuth2ViewTouch.xib", "${PODS_ROOT}/GoogleSignIn/Resources/GoogleSignIn.bundle", - "$PODS_CONFIGURATION_BUILD_DIR/gRPC/gRPCCertificates.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/gRPC/gRPCCertificates.bundle", ); name = "[CP] Copy Pods Resources"; outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GINInviteResources.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GPPACLPickerResources.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GTMOAuth2ViewTouch.nib", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleSignIn.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/gRPCCertificates.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; diff --git a/bridge/package-lock.json b/bridge/package-lock.json index 572cd5e5..ec76efd1 100644 --- a/bridge/package-lock.json +++ b/bridge/package-lock.json @@ -2420,9 +2420,9 @@ } }, "bridge": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/bridge/-/bridge-0.2.5.tgz", - "integrity": "sha512-CTkb8xDgunA28vNsthJM5+V/KIorf7091t8c0wwcpu0JdclkXMqJI47gKhpAlFiDtBgSNlNx5j6mokUl/T2ESw==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/bridge/-/bridge-0.2.7.tgz", + "integrity": "sha512-0o7P5V2D0XIqM93aQMm9CefXyvK9ke3YaJjkv+HMy6LfCk0XqnLPuhZygmk067siRvJeS6Gh4VCYrzPYExwbeQ==", "requires": { "chalk": "2.4.0", "detox": "7.3.3", diff --git a/ios/RNFirebase/firestore/RNFirebaseFirestoreCollectionReference.m b/ios/RNFirebase/firestore/RNFirebaseFirestoreCollectionReference.m index d3acff90..278619ff 100644 --- a/ios/RNFirebase/firestore/RNFirebaseFirestoreCollectionReference.m +++ b/ios/RNFirebase/firestore/RNFirebaseFirestoreCollectionReference.m @@ -66,13 +66,12 @@ queryListenOptions:(NSDictionary *) queryListenOptions { }; FIRQueryListenOptions *options = [[FIRQueryListenOptions alloc] init]; - if (queryListenOptions) { - if (queryListenOptions[@"includeDocumentMetadataChanges"]) { - [options includeDocumentMetadataChanges:TRUE]; - } - if (queryListenOptions[@"includeQueryMetadataChanges"]) { - [options includeQueryMetadataChanges:TRUE]; - } + if (queryListenOptions && queryListenOptions[@"includeMetadataChanges"]) { + [options includeDocumentMetadataChanges:true]; + [options includeQueryMetadataChanges:true]; + } else { + [options includeDocumentMetadataChanges:false]; + [options includeQueryMetadataChanges:false]; } id listener = [_query addSnapshotListenerWithOptions:options listener:listenerBlock]; diff --git a/lib/index.d.ts b/lib/index.d.ts index d19e540e..fb68a956 100644 --- a/lib/index.d.ts +++ b/lib/index.d.ts @@ -1757,12 +1757,12 @@ declare module 'react-native-firebase' { ): () => void; onSnapshot(observer: Query.Observer): () => void; onSnapshot( - queryListenOptions: Query.QueryListenOptions, + metadataChanges: MetadataChanges, onNext: Query.ObserverOnNext, onError?: Query.ObserverOnError ): () => void; onSnapshot( - queryListenOptions: Query.QueryListenOptions, + metadataChanges: MetadataChanges, observer: Query.Observer ): () => void; orderBy( @@ -1801,12 +1801,12 @@ declare module 'react-native-firebase' { ): () => void; onSnapshot(observer: DocumentReference.Observer): () => void; onSnapshot( - documentListenOptions: DocumentReference.DocumentListenOptions, + metadataChanges: MetadataChanges, onNext: DocumentReference.ObserverOnNext, onError?: DocumentReference.ObserverOnError ): () => void; onSnapshot( - documentListenOptions: DocumentReference.DocumentListenOptions, + metadataChanges: MetadataChanges, observer: DocumentReference.Observer ): () => void; set(data: object, writeOptions?: Types.WriteOptions): Promise; @@ -1850,10 +1850,6 @@ declare module 'react-native-firebase' { ): Promise; } namespace DocumentReference { - interface DocumentListenOptions { - includeMetadataChanges: boolean; - } - type ObserverOnNext = (documentSnapshot: DocumentSnapshot) => void; type ObserverOnError = (err: object) => void; interface Observer { @@ -1906,6 +1902,10 @@ declare module 'react-native-firebase' { parent(): Path | null; } + type MetadataChanges = { + includeMetadataChanges: boolean; + }; + interface Query { readonly firestore: Firestore; endAt(snapshot: DocumentSnapshot): Query; @@ -1920,12 +1920,12 @@ declare module 'react-native-firebase' { ): () => void; onSnapshot(observer: Query.Observer): () => void; onSnapshot( - queryListenOptions: Query.QueryListenOptions, + metadataChanges: MetadataChanges, onNext: Query.ObserverOnNext, onError?: Query.ObserverOnError ): () => void; onSnapshot( - queryListenOptions: Query.QueryListenOptions, + metadataChanges: MetadataChanges, observer: Query.Observer ): () => void; orderBy( @@ -1970,19 +1970,6 @@ declare module 'react-native-firebase' { startAt?: any[]; } - // The JS code expects at least one of 'includeDocumentMetadataChanges' - // or 'includeQueryMetadataChanges' to be defined. - interface _IncludeDocumentMetadataChanges { - includeDocumentMetadataChanges: boolean; - } - interface _IncludeQueryMetadataChanges { - includeQueryMetadataChanges: boolean; - } - type QueryListenOptions = - | _IncludeDocumentMetadataChanges - | _IncludeQueryMetadataChanges - | (_IncludeDocumentMetadataChanges & _IncludeQueryMetadataChanges); - type ObserverOnNext = (querySnapshot: QuerySnapshot) => void; type ObserverOnError = (err: object) => void; interface Observer { diff --git a/lib/index.js b/lib/index.js index 83c1a6be..42f231eb 100644 --- a/lib/index.js +++ b/lib/index.js @@ -39,8 +39,7 @@ export type { default as DataQuery } from './modules/database/Query'; * Export Firestore types */ export type { - DocumentListenOptions, - QueryListenOptions, + MetadataChanges, SetOptions, SnapshotMetadata, } from './modules/firestore/types'; diff --git a/lib/modules/firestore/CollectionReference.js b/lib/modules/firestore/CollectionReference.js index 57e6d2a3..f1a8082c 100644 --- a/lib/modules/firestore/CollectionReference.js +++ b/lib/modules/firestore/CollectionReference.js @@ -7,11 +7,7 @@ import Query from './Query'; import { firestoreAutoId } from '../../utils'; import type Firestore from './'; -import type { - QueryDirection, - QueryListenOptions, - QueryOperator, -} from './types'; +import type { MetadataChanges, QueryDirection, QueryOperator } from './types'; import type FieldPath from './FieldPath'; import type Path from './Path'; import type { Observer, ObserverOnError, ObserverOnNext } from './Query'; @@ -80,7 +76,7 @@ export default class CollectionReference { } onSnapshot( - optionsOrObserverOrOnNext: QueryListenOptions | Observer | ObserverOnNext, + optionsOrObserverOrOnNext: MetadataChanges | Observer | ObserverOnNext, observerOrOnNextOrOnError?: Observer | ObserverOnNext | ObserverOnError, onError?: ObserverOnError ): () => void { diff --git a/lib/modules/firestore/DocumentReference.js b/lib/modules/firestore/DocumentReference.js index ebce412b..233e2476 100644 --- a/lib/modules/firestore/DocumentReference.js +++ b/lib/modules/firestore/DocumentReference.js @@ -13,7 +13,7 @@ import { getNativeModule } from '../../utils/native'; import type Firestore from './'; import type { - DocumentListenOptions, + MetadataChanges, NativeDocumentSnapshot, SetOptions, } from './types'; @@ -77,10 +77,7 @@ export default class DocumentReference { } onSnapshot( - optionsOrObserverOrOnNext: - | DocumentListenOptions - | Observer - | ObserverOnNext, + optionsOrObserverOrOnNext: MetadataChanges | Observer | ObserverOnNext, observerOrOnNextOrOnError?: Observer | ObserverOnNext | ObserverOnError, onError?: ObserverOnError ) { diff --git a/lib/modules/firestore/Query.js b/lib/modules/firestore/Query.js index 90ad3667..1b360e73 100644 --- a/lib/modules/firestore/Query.js +++ b/lib/modules/firestore/Query.js @@ -13,11 +13,7 @@ import { getNativeModule } from '../../utils/native'; import type Firestore from './'; import type Path from './Path'; -import type { - QueryDirection, - QueryOperator, - QueryListenOptions, -} from './types'; +import type { MetadataChanges, QueryDirection, QueryOperator } from './types'; const DIRECTIONS: { [QueryDirection]: string } = { ASC: 'ASCENDING', @@ -170,12 +166,12 @@ export default class Query { } onSnapshot( - optionsOrObserverOrOnNext: QueryListenOptions | Observer | ObserverOnNext, + optionsOrObserverOrOnNext: MetadataChanges | Observer | ObserverOnNext, observerOrOnNextOrOnError?: Observer | ObserverOnNext | ObserverOnError, onError?: ObserverOnError ) { let observer: Observer; - let queryListenOptions = {}; + let metadataChanges = {}; // Called with: onNext, ?onError if (isFunction(optionsOrObserverOrOnNext)) { if (observerOrOnNextOrOnError && !isFunction(observerOrOnNextOrOnError)) { @@ -216,14 +212,10 @@ export default class Query { } else if ( Object.prototype.hasOwnProperty.call( optionsOrObserverOrOnNext, - 'includeDocumentMetadataChanges' - ) || - Object.prototype.hasOwnProperty.call( - optionsOrObserverOrOnNext, - 'includeQueryMetadataChanges' + 'includeMetadataChanges' ) ) { - queryListenOptions = optionsOrObserverOrOnNext; + metadataChanges = optionsOrObserverOrOnNext; // Called with: Options, onNext, ?onError if (isFunction(observerOrOnNextOrOnError)) { if (onError && !isFunction(onError)) { @@ -307,7 +299,7 @@ export default class Query { this._fieldOrders, this._queryOptions, listenerId, - queryListenOptions + metadataChanges ); // Return an unsubscribe method diff --git a/lib/modules/firestore/types.js b/lib/modules/firestore/types.js index 3dd1f4a6..281a4a6f 100644 --- a/lib/modules/firestore/types.js +++ b/lib/modules/firestore/types.js @@ -2,17 +2,12 @@ * @flow */ -export type DocumentListenOptions = { +export type MetadataChanges = {| includeMetadataChanges: boolean, -}; +|}; export type QueryDirection = 'DESC' | 'desc' | 'ASC' | 'asc'; -export type QueryListenOptions = {| - includeDocumentMetadataChanges: boolean, - includeQueryMetadataChanges: boolean, -|}; - export type QueryOperator = '<' | '<=' | '=' | '==' | '>' | '>='; export type SetOptions = { diff --git a/package-lock.json b/package-lock.json index cd5fa22c..fb0f666e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1041,7 +1041,7 @@ }, "babel-eslint": { "version": "8.2.2", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-8.2.2.tgz", + "resolved": "http://registry.npmjs.org/babel-eslint/-/babel-eslint-8.2.2.tgz", "integrity": "sha512-Qt2lz2egBxNYWqN9JIO2z4NOOf8i4b5JS6CFoYrOZZTDssueiV1jH/jsefyg+86SeNY3rB361/mi3kE1WK2WYQ==", "dev": true, "requires": { diff --git a/tests/android/app/build.gradle b/tests/android/app/build.gradle index 00d12ded..4a16328c 100644 --- a/tests/android/app/build.gradle +++ b/tests/android/app/build.gradle @@ -70,29 +70,28 @@ android { } } -project.ext.firebaseVersion = '12.0.0' - dependencies { implementation project(':react-native-vector-icons') implementation(project(':react-native-firebase')) { transitive = false } implementation fileTree(dir: "libs", include: ["*.jar"]) - implementation "com.google.android.gms:play-services-base:$firebaseVersion" - implementation "com.google.firebase:firebase-ads:$firebaseVersion" - implementation "com.google.firebase:firebase-auth:$firebaseVersion" - implementation "com.google.firebase:firebase-config:$firebaseVersion" - implementation "com.google.firebase:firebase-core:$firebaseVersion" - implementation "com.google.firebase:firebase-crash:$firebaseVersion" - implementation "com.google.firebase:firebase-database:$firebaseVersion" - implementation "com.google.firebase:firebase-messaging:$firebaseVersion" - implementation "com.google.firebase:firebase-perf:$firebaseVersion" - implementation "com.google.firebase:firebase-storage:$firebaseVersion" - implementation "com.google.firebase:firebase-firestore:$firebaseVersion" - implementation "com.google.firebase:firebase-invites:$firebaseVersion" implementation('com.crashlytics.sdk.android:crashlytics:2.9.1@aar') { transitive = true } + implementation "com.google.android.gms:play-services-base:15.0.0" + implementation "com.google.firebase:firebase-ads:15.0.0" + implementation "com.google.firebase:firebase-auth:15.1.0" + implementation "com.google.firebase:firebase-config:15.0.0" + implementation "com.google.firebase:firebase-core:15.0.2" + implementation "com.google.firebase:firebase-crash:15.0.2" + implementation "com.google.firebase:firebase-database:15.0.0" + implementation "com.google.firebase:firebase-firestore:16.0.0" + implementation "com.google.firebase:firebase-functions:15.0.0" + implementation "com.google.firebase:firebase-invites:15.0.1" + implementation "com.google.firebase:firebase-storage:15.0.2" + implementation "com.google.firebase:firebase-messaging:15.0.2" + implementation "com.google.firebase:firebase-perf:15.1.0" implementation "com.android.support:appcompat-v7:27.0.2" implementation "com.facebook.react:react-native:+" // From node_modules } diff --git a/tests/android/build.gradle b/tests/android/build.gradle index ffc77479..f0406635 100644 --- a/tests/android/build.gradle +++ b/tests/android/build.gradle @@ -9,8 +9,8 @@ buildscript { } } dependencies { - classpath 'com.android.tools.build:gradle:3.1.0' - classpath 'com.google.gms:google-services:3.1.2' + classpath 'com.android.tools.build:gradle:3.1.2' + classpath 'com.google.gms:google-services:3.2.1' classpath 'com.google.firebase:firebase-plugins:1.1.1' classpath 'io.fabric.tools:gradle:1.25.1' } diff --git a/tests/ios/Podfile.lock b/tests/ios/Podfile.lock index a9785252..8192c5c4 100644 --- a/tests/ios/Podfile.lock +++ b/tests/ios/Podfile.lock @@ -10,55 +10,55 @@ PODS: - Fabric (~> 1.7.5) - DoubleConversion (1.1.5) - Fabric (1.7.6) - - Firebase/AdMob (4.12.0): + - Firebase/AdMob (4.13.0): - Firebase/Core - Google-Mobile-Ads-SDK (= 7.30.0) - - Firebase/Auth (4.12.0): + - Firebase/Auth (4.13.0): - Firebase/Core - - FirebaseAuth (= 4.6.0) - - Firebase/Core (4.12.0): - - FirebaseAnalytics (= 4.1.0) - - FirebaseCore (= 4.0.19) - - Firebase/Crash (4.12.0): + - FirebaseAuth (= 4.6.1) + - Firebase/Core (4.13.0): + - FirebaseAnalytics (= 4.2.0) + - FirebaseCore (= 4.0.20) + - Firebase/Crash (4.13.0): - Firebase/Core - FirebaseCrash (= 2.0.2) - - Firebase/Database (4.12.0): + - Firebase/Database (4.13.0): - Firebase/Core - FirebaseDatabase (= 4.1.5) - - Firebase/DynamicLinks (4.12.0): + - Firebase/DynamicLinks (4.13.0): - Firebase/Core - FirebaseDynamicLinks (= 2.3.2) - - Firebase/Firestore (4.12.0): + - Firebase/Firestore (4.13.0): - Firebase/Core - FirebaseFirestore (= 0.11.0) - - Firebase/Invites (4.12.0): + - Firebase/Invites (4.13.0): - Firebase/Core - FirebaseInvites (= 2.0.2) - - Firebase/Messaging (4.12.0): + - Firebase/Messaging (4.13.0): - Firebase/Core - FirebaseMessaging (= 2.2.0) - - Firebase/Performance (4.12.0): + - Firebase/Performance (4.13.0): - Firebase/Core - FirebasePerformance (= 1.1.3) - - Firebase/RemoteConfig (4.12.0): + - Firebase/RemoteConfig (4.13.0): - Firebase/Core - FirebaseRemoteConfig (= 2.1.3) - - Firebase/Storage (4.12.0): + - Firebase/Storage (4.13.0): - Firebase/Core - FirebaseStorage (= 2.2.0) - FirebaseABTesting (1.0.0): - FirebaseCore (~> 4.0) - Protobuf (~> 3.1) - - FirebaseAnalytics (4.1.0): + - FirebaseAnalytics (4.2.0): - FirebaseCore (~> 4.0) - FirebaseInstanceID (~> 2.0) - GoogleToolboxForMac/NSData+zlib (~> 2.1) - nanopb (~> 0.3) - - FirebaseAuth (4.6.0): - - FirebaseAnalytics (~> 4.1) + - FirebaseAuth (4.6.1): + - FirebaseAnalytics (~> 4.2) - GoogleToolboxForMac/NSDictionary+URLArguments (~> 2.1) - GTMSessionFetcher/Core (~> 1.1) - - FirebaseCore (4.0.19): + - FirebaseCore (4.0.20): - GoogleToolboxForMac/NSData+zlib (~> 2.1) - FirebaseCrash (2.0.2): - FirebaseAnalytics (~> 4.0) @@ -139,46 +139,46 @@ PODS: - GoogleToolboxForMac/NSString+URLArguments (~> 2.1) - GTMOAuth2 (~> 1.0) - GTMSessionFetcher/Core (~> 1.1) - - GoogleToolboxForMac/Core (2.1.3): - - GoogleToolboxForMac/Defines (= 2.1.3) - - GoogleToolboxForMac/DebugUtils (2.1.3): - - GoogleToolboxForMac/Defines (= 2.1.3) - - GoogleToolboxForMac/Defines (2.1.3) - - GoogleToolboxForMac/Logger (2.1.3): - - GoogleToolboxForMac/Defines (= 2.1.3) - - GoogleToolboxForMac/NSData+zlib (2.1.3): - - GoogleToolboxForMac/Defines (= 2.1.3) - - GoogleToolboxForMac/NSDictionary+URLArguments (2.1.3): - - GoogleToolboxForMac/DebugUtils (= 2.1.3) - - GoogleToolboxForMac/Defines (= 2.1.3) - - GoogleToolboxForMac/NSString+URLArguments (= 2.1.3) - - GoogleToolboxForMac/NSString+URLArguments (2.1.3) - - GoogleToolboxForMac/StringEncoding (2.1.3): - - GoogleToolboxForMac/Defines (= 2.1.3) - - GoogleToolboxForMac/URLBuilder (2.1.3): - - GoogleToolboxForMac/Core (= 2.1.3) - - GoogleToolboxForMac/Defines (= 2.1.3) - - GoogleToolboxForMac/NSDictionary+URLArguments (= 2.1.3) - - GoogleToolboxForMac/NSString+URLArguments (= 2.1.3) - - gRPC (1.10.0): - - gRPC-RxLibrary (= 1.10.0) - - gRPC/Main (= 1.10.0) - - gRPC-Core (1.10.0): - - gRPC-Core/Implementation (= 1.10.0) - - gRPC-Core/Interface (= 1.10.0) - - gRPC-Core/Implementation (1.10.0): + - GoogleToolboxForMac/Core (2.1.4): + - GoogleToolboxForMac/Defines (= 2.1.4) + - GoogleToolboxForMac/DebugUtils (2.1.4): + - GoogleToolboxForMac/Defines (= 2.1.4) + - GoogleToolboxForMac/Defines (2.1.4) + - GoogleToolboxForMac/Logger (2.1.4): + - GoogleToolboxForMac/Defines (= 2.1.4) + - GoogleToolboxForMac/NSData+zlib (2.1.4): + - GoogleToolboxForMac/Defines (= 2.1.4) + - GoogleToolboxForMac/NSDictionary+URLArguments (2.1.4): + - GoogleToolboxForMac/DebugUtils (= 2.1.4) + - GoogleToolboxForMac/Defines (= 2.1.4) + - GoogleToolboxForMac/NSString+URLArguments (= 2.1.4) + - GoogleToolboxForMac/NSString+URLArguments (2.1.4) + - GoogleToolboxForMac/StringEncoding (2.1.4): + - GoogleToolboxForMac/Defines (= 2.1.4) + - GoogleToolboxForMac/URLBuilder (2.1.4): + - GoogleToolboxForMac/Core (= 2.1.4) + - GoogleToolboxForMac/Defines (= 2.1.4) + - GoogleToolboxForMac/NSDictionary+URLArguments (= 2.1.4) + - GoogleToolboxForMac/NSString+URLArguments (= 2.1.4) + - gRPC (1.11.0): + - gRPC-RxLibrary (= 1.11.0) + - gRPC/Main (= 1.11.0) + - gRPC-Core (1.11.0): + - gRPC-Core/Implementation (= 1.11.0) + - gRPC-Core/Interface (= 1.11.0) + - gRPC-Core/Implementation (1.11.0): - BoringSSL (~> 10.0) - - gRPC-Core/Interface (= 1.10.0) + - gRPC-Core/Interface (= 1.11.0) - nanopb (~> 0.3) - - gRPC-Core/Interface (1.10.0) - - gRPC-ProtoRPC (1.10.0): - - gRPC (= 1.10.0) - - gRPC-RxLibrary (= 1.10.0) + - gRPC-Core/Interface (1.11.0) + - gRPC-ProtoRPC (1.11.0): + - gRPC (= 1.11.0) + - gRPC-RxLibrary (= 1.11.0) - Protobuf (~> 3.0) - - gRPC-RxLibrary (1.10.0) - - gRPC/Main (1.10.0): - - gRPC-Core (= 1.10.0) - - gRPC-RxLibrary (= 1.10.0) + - gRPC-RxLibrary (1.11.0) + - gRPC/Main (1.11.0): + - gRPC-Core (= 1.11.0) + - gRPC-RxLibrary (= 1.11.0) - GTMOAuth2 (1.1.6): - GTMSessionFetcher (~> 1.1) - GTMSessionFetcher (1.1.15): @@ -222,7 +222,8 @@ PODS: - React/Core - React/fishhook - React/RCTBlob - - RNFirebase (4.0.2): + - RNFirebase (4.0.7): + - Firebase/Core - React - yoga (0.54.4.React) @@ -263,11 +264,11 @@ SPEC CHECKSUMS: Crashlytics: aee1a064cbbf99b32efa3f056a5f458d846bc8ff DoubleConversion: e22e0762848812a87afd67ffda3998d9ef29170c Fabric: f8d42c893bb187326a7968b62abe55c36a987a46 - Firebase: d7fdf40e4d6c841849c52919f437fd3a0009ded0 + Firebase: 5ec5e863d269d82d66b4bf56856726f8fb8f0fb3 FirebaseABTesting: d07d0ee833b842d5153549e4c7e2e2cb1c23a3f9 - FirebaseAnalytics: 3dfae28d4a5e06f86c4fae830efc2ad3fadb19bc - FirebaseAuth: 85a1b118a89838efc6f6ab3f2b1f94747d72a915 - FirebaseCore: ff49ebb37e0f63a570d78c4f1c1c0befe8659d5c + FirebaseAnalytics: 7ef69e76a5142f643aeb47c780e1cdce4e23632e + FirebaseAuth: bf22cacf22c60ab454bf2636f556d8892b10b53f + FirebaseCore: 90cb1c53d69b556f112a1bf72b5fcfaad7650790 FirebaseCrash: a7d980468dc8aa2db9792493c3e02722d601f6ab FirebaseDatabase: 5f0bc6134c5c237cf55f9e1249d406770a75eafd FirebaseDynamicLinks: 38b68641d24e78d0277a9205d988ce22875d5a25 @@ -284,18 +285,18 @@ SPEC CHECKSUMS: Google-Mobile-Ads-SDK: 7404f68120ae8682afeb5af001fbf4aad731c78e GoogleAPIClientForREST: f7951c455df271bc6259b3ddb4073d0026475ccf GoogleSignIn: d9ef55b10f0aa401a5de2747f59b725e4b9732ac - GoogleToolboxForMac: 2501e2ad72a52eb3dfe7bd9aee7dad11b858bd20 - gRPC: f54f0e6d603052b4562447da442ce2ff30bcdacc - gRPC-Core: a030b1678ded49c88ec5ba7c90ee8ee5f47ec6e1 - gRPC-ProtoRPC: 22712b23eb1bda656a59715fa5c1da0ea1493ea4 - gRPC-RxLibrary: a41a4652d220f230ba1c0491a94ce2ee04c6180a + GoogleToolboxForMac: 91c824d21e85b31c2aae9bb011c5027c9b4e738f + gRPC: 70703dc9ba31c72341fc7f37745cc1c379edee96 + gRPC-Core: 164639cd8ae18ca8b65477fafb2efbaecf4f181a + gRPC-ProtoRPC: bb5fddf3424aa4fad74d76736578a79fe40e244e + gRPC-RxLibrary: 26d53d1b1f306befd4ad4e15bd6de27839a82481 GTMOAuth2: c77fe325e4acd453837e72d91e3b5f13116857b2 GTMSessionFetcher: 5fa5b80fd20e439ef5f545fb2cb3ca6c6714caa2 leveldb-library: 08cba283675b7ed2d99629a4bc5fd052cd2bb6a5 nanopb: 5601e6bca2dbf1ed831b519092ec110f66982ca3 Protobuf: 8a9838fba8dae3389230e1b7f8c104aa32389c03 React: c237e42de9c70e5cac6eeb52b4cfd3a0910c1f00 - RNFirebase: dff98ceb517ef0b5e1858deb59eca186acc6edb0 + RNFirebase: 2b25fd2e60269f26bb0a76c71dcc942b35a77df0 yoga: 55da126afc384965b96bff46652464373b330add PODFILE CHECKSUM: b776d6f4d08bbd51cda6d929b57bfaa8031e7ead diff --git a/tests/src/tests/firestore/collectionReferenceTests.js b/tests/src/tests/firestore/collectionReferenceTests.js index fd879acb..ab68f371 100644 --- a/tests/src/tests/firestore/collectionReferenceTests.js +++ b/tests/src/tests/firestore/collectionReferenceTests.js @@ -389,8 +389,7 @@ function collectionReferenceTests({ await new Promise(resolve2 => { unsubscribe = collectionRef.onSnapshot( { - includeQueryMetadataChanges: true, - includeDocumentMetadataChanges: true, + includeMetadataChanges: true, }, snapshot => { snapshot.forEach(doc => callback(doc.data())); @@ -478,8 +477,7 @@ function collectionReferenceTests({ }; unsubscribe = collectionRef.onSnapshot( { - includeQueryMetadataChanges: true, - includeDocumentMetadataChanges: true, + includeMetadataChanges: true, }, observer ); @@ -531,7 +529,7 @@ function collectionReferenceTests({ (() => { colRef.onSnapshot( { - includeQueryMetadataChanges: true, + includeMetadataChanges: true, }, () => {}, 'error' @@ -542,7 +540,7 @@ function collectionReferenceTests({ (() => { colRef.onSnapshot( { - includeQueryMetadataChanges: true, + includeMetadataChanges: true, }, { next: () => {}, @@ -555,7 +553,7 @@ function collectionReferenceTests({ (() => { colRef.onSnapshot( { - includeQueryMetadataChanges: true, + includeMetadataChanges: true, }, { next: 'error', @@ -567,7 +565,7 @@ function collectionReferenceTests({ (() => { colRef.onSnapshot( { - includeQueryMetadataChanges: true, + includeMetadataChanges: true, }, 'error' );