@@ -57,27 +57,18 @@ import {
57
57
Unsubscribe
58
58
} from '../../../src/api/observer' ;
59
59
import {
60
- executeQueryFromCache ,
61
- executeQueryViaSnapshotListener ,
62
- firestoreClientWrite ,
63
- getEventManager ,
64
- getLocalStore ,
65
- readDocumentFromCache ,
66
- readDocumentViaSnapshotListener
60
+ firestoreClientAddSnapshotsInSyncListener ,
61
+ firestoreClientGetDocumentFromLocalCache ,
62
+ firestoreClientGetDocumentsFromLocalCache ,
63
+ firestoreClientGetDocumentsViaSnapshotListener ,
64
+ firestoreClientGetDocumentViaSnapshotListener ,
65
+ firestoreClientListen ,
66
+ firestoreClientWrite
67
67
} from '../../../src/core/firestore_client' ;
68
68
import {
69
69
newQueryForPath ,
70
70
Query as InternalQuery
71
71
} from '../../../src/core/query' ;
72
- import { Deferred } from '../../../src/util/promise' ;
73
- import { AsyncObserver } from '../../../src/util/async_observer' ;
74
- import {
75
- addSnapshotsInSyncListener ,
76
- eventManagerListen ,
77
- eventManagerUnlisten ,
78
- QueryListener ,
79
- removeSnapshotsInSyncListener
80
- } from '../../../src/core/event_manager' ;
81
72
import { FirestoreError } from '../../../src/util/error' ;
82
73
import { Compat } from '../../../src/compat/compat' ;
83
74
import { ByteString } from '../../../src/util/byte_string' ;
@@ -134,20 +125,10 @@ export function getDoc<T>(
134
125
const firestore = cast ( reference . firestore , FirebaseFirestore ) ;
135
126
const client = ensureFirestoreConfigured ( firestore ) ;
136
127
137
- const deferred = new Deferred < ViewSnapshot > ( ) ;
138
- firestore . _queue . enqueueAndForget ( async ( ) => {
139
- const eventManager = await getEventManager ( client ) ;
140
- await readDocumentViaSnapshotListener (
141
- eventManager ,
142
- firestore . _queue ,
143
- reference . _key ,
144
- { source : 'default' } ,
145
- deferred
146
- ) ;
147
- } ) ;
148
- return deferred . promise . then ( snapshot =>
149
- convertToDocSnapshot ( firestore , reference , snapshot )
150
- ) ;
128
+ return firestoreClientGetDocumentViaSnapshotListener (
129
+ client ,
130
+ reference . _key
131
+ ) . then ( snapshot => convertToDocSnapshot ( firestore , reference , snapshot ) ) ;
151
132
}
152
133
153
134
export class ExpUserDataWriter extends AbstractUserDataWriter {
@@ -179,12 +160,7 @@ export function getDocFromCache<T>(
179
160
const client = ensureFirestoreConfigured ( firestore ) ;
180
161
const userDataWriter = new ExpUserDataWriter ( firestore ) ;
181
162
182
- const deferred = new Deferred < Document | null > ( ) ;
183
- firestore . _queue . enqueueAndForget ( async ( ) => {
184
- const localStore = await getLocalStore ( client ) ;
185
- await readDocumentFromCache ( localStore , reference . _key , deferred ) ;
186
- } ) ;
187
- return deferred . promise . then (
163
+ return firestoreClientGetDocumentFromLocalCache ( client , reference . _key ) . then (
188
164
doc =>
189
165
new DocumentSnapshot (
190
166
firestore ,
@@ -213,20 +189,9 @@ export function getDocFromServer<T>(
213
189
const firestore = cast ( reference . firestore , FirebaseFirestore ) ;
214
190
const client = ensureFirestoreConfigured ( firestore ) ;
215
191
216
- const deferred = new Deferred < ViewSnapshot > ( ) ;
217
- firestore . _queue . enqueueAndForget ( async ( ) => {
218
- const eventManager = await getEventManager ( client ) ;
219
- await readDocumentViaSnapshotListener (
220
- eventManager ,
221
- firestore . _queue ,
222
- reference . _key ,
223
- { source : 'server' } ,
224
- deferred
225
- ) ;
226
- } ) ;
227
- return deferred . promise . then ( snapshot =>
228
- convertToDocSnapshot ( firestore , reference , snapshot )
229
- ) ;
192
+ return firestoreClientGetDocumentViaSnapshotListener ( client , reference . _key , {
193
+ source : 'server'
194
+ } ) . then ( snapshot => convertToDocSnapshot ( firestore , reference , snapshot ) ) ;
230
195
}
231
196
232
197
/**
@@ -245,19 +210,10 @@ export function getDocs<T>(query: Query<T>): Promise<QuerySnapshot<T>> {
245
210
const userDataWriter = new ExpUserDataWriter ( firestore ) ;
246
211
247
212
validateHasExplicitOrderByForLimitToLast ( query . _query ) ;
248
-
249
- const deferred = new Deferred < ViewSnapshot > ( ) ;
250
- firestore . _queue . enqueueAndForget ( async ( ) => {
251
- const eventManager = await getEventManager ( client ) ;
252
- await executeQueryViaSnapshotListener (
253
- eventManager ,
254
- firestore . _queue ,
255
- query . _query ,
256
- { source : 'default' } ,
257
- deferred
258
- ) ;
259
- } ) ;
260
- return deferred . promise . then (
213
+ return firestoreClientGetDocumentsViaSnapshotListener (
214
+ client ,
215
+ query . _query
216
+ ) . then (
261
217
snapshot => new QuerySnapshot ( firestore , userDataWriter , query , snapshot )
262
218
) ;
263
219
}
@@ -275,12 +231,7 @@ export function getDocsFromCache<T>(
275
231
const client = ensureFirestoreConfigured ( firestore ) ;
276
232
const userDataWriter = new ExpUserDataWriter ( firestore ) ;
277
233
278
- const deferred = new Deferred < ViewSnapshot > ( ) ;
279
- firestore . _queue . enqueueAndForget ( async ( ) => {
280
- const localStore = await getLocalStore ( client ) ;
281
- await executeQueryFromCache ( localStore , query . _query , deferred ) ;
282
- } ) ;
283
- return deferred . promise . then (
234
+ return firestoreClientGetDocumentsFromLocalCache ( client , query . _query ) . then (
284
235
snapshot => new QuerySnapshot ( firestore , userDataWriter , query , snapshot )
285
236
) ;
286
237
}
@@ -298,18 +249,9 @@ export function getDocsFromServer<T>(
298
249
const client = ensureFirestoreConfigured ( firestore ) ;
299
250
const userDataWriter = new ExpUserDataWriter ( firestore ) ;
300
251
301
- const deferred = new Deferred < ViewSnapshot > ( ) ;
302
- firestore . _queue . enqueueAndForget ( async ( ) => {
303
- const eventManager = await getEventManager ( client ) ;
304
- await executeQueryViaSnapshotListener (
305
- eventManager ,
306
- firestore . _queue ,
307
- query . _query ,
308
- { source : 'server' } ,
309
- deferred
310
- ) ;
311
- } ) ;
312
- return deferred . promise . then (
252
+ return firestoreClientGetDocumentsViaSnapshotListener ( client , query . _query , {
253
+ source : 'server'
254
+ } ) . then (
313
255
snapshot => new QuerySnapshot ( firestore , userDataWriter , query , snapshot )
314
256
) ;
315
257
}
@@ -761,25 +703,12 @@ export function onSnapshot<T>(
761
703
}
762
704
763
705
const client = ensureFirestoreConfigured ( firestore ) ;
764
-
765
- const wrappedObserver = new AsyncObserver ( observer ) ;
766
- const listener = new QueryListener (
706
+ return firestoreClientListen (
707
+ client ,
767
708
internalQuery ,
768
- wrappedObserver ,
769
- internalOptions
709
+ internalOptions ,
710
+ observer
770
711
) ;
771
- firestore . _queue . enqueueAndForget ( async ( ) => {
772
- const eventManager = await getEventManager ( client ) ;
773
- return eventManagerListen ( eventManager , listener ) ;
774
- } ) ;
775
-
776
- return ( ) => {
777
- wrappedObserver . mute ( ) ;
778
- firestore . _queue . enqueueAndForget ( async ( ) => {
779
- const eventManager = await getEventManager ( client ) ;
780
- return eventManagerUnlisten ( eventManager , listener ) ;
781
- } ) ;
782
- } ;
783
712
}
784
713
785
714
// TODO(firestorexp): Make sure these overloads are tested via the Firestore
@@ -833,26 +762,13 @@ export function onSnapshotsInSync(
833
762
arg : unknown
834
763
) : Unsubscribe {
835
764
const client = ensureFirestoreConfigured ( firestore ) ;
836
-
837
765
const observer = isPartialObserver ( arg )
838
766
? ( arg as PartialObserver < void > )
839
767
: {
840
768
next : arg as ( ) => void
841
769
} ;
842
770
843
- const wrappedObserver = new AsyncObserver ( observer ) ;
844
- firestore . _queue . enqueueAndForget ( async ( ) => {
845
- const eventManager = await getEventManager ( client ) ;
846
- addSnapshotsInSyncListener ( eventManager , wrappedObserver ) ;
847
- } ) ;
848
-
849
- return ( ) => {
850
- wrappedObserver . mute ( ) ;
851
- firestore . _queue . enqueueAndForget ( async ( ) => {
852
- const eventManager = await getEventManager ( client ) ;
853
- removeSnapshotsInSyncListener ( eventManager , wrappedObserver ) ;
854
- } ) ;
855
- } ;
771
+ return firestoreClientAddSnapshotsInSyncListener ( client , observer ) ;
856
772
}
857
773
858
774
/** Locally writes `mutations` on the async queue. */
0 commit comments