@@ -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' ;
@@ -135,20 +126,10 @@ export function getDoc<T>(
135
126
const firestore = cast ( reference . firestore , FirebaseFirestore ) ;
136
127
const client = ensureFirestoreConfigured ( firestore ) ;
137
128
138
- const deferred = new Deferred < ViewSnapshot > ( ) ;
139
- firestore . _queue . enqueueAndForget ( async ( ) => {
140
- const eventManager = await getEventManager ( client ) ;
141
- await readDocumentViaSnapshotListener (
142
- eventManager ,
143
- firestore . _queue ,
144
- reference . _key ,
145
- { source : 'default' } ,
146
- deferred
147
- ) ;
148
- } ) ;
149
- return deferred . promise . then ( snapshot =>
150
- convertToDocSnapshot ( firestore , reference , snapshot )
151
- ) ;
129
+ return firestoreClientGetDocumentViaSnapshotListener (
130
+ client ,
131
+ reference . _key
132
+ ) . then ( snapshot => convertToDocSnapshot ( firestore , reference , snapshot ) ) ;
152
133
}
153
134
154
135
export class ExpUserDataWriter extends AbstractUserDataWriter {
@@ -181,12 +162,7 @@ export function getDocFromCache<T>(
181
162
const client = ensureFirestoreConfigured ( firestore ) ;
182
163
const userDataWriter = new ExpUserDataWriter ( firestore ) ;
183
164
184
- const deferred = new Deferred < Document | null > ( ) ;
185
- firestore . _queue . enqueueAndForget ( async ( ) => {
186
- const localStore = await getLocalStore ( client ) ;
187
- await readDocumentFromCache ( localStore , reference . _key , deferred ) ;
188
- } ) ;
189
- return deferred . promise . then (
165
+ return firestoreClientGetDocumentFromLocalCache ( client , reference . _key ) . then (
190
166
doc =>
191
167
new DocumentSnapshot (
192
168
firestore ,
@@ -216,20 +192,9 @@ export function getDocFromServer<T>(
216
192
const firestore = cast ( reference . firestore , FirebaseFirestore ) ;
217
193
const client = ensureFirestoreConfigured ( firestore ) ;
218
194
219
- const deferred = new Deferred < ViewSnapshot > ( ) ;
220
- firestore . _queue . enqueueAndForget ( async ( ) => {
221
- const eventManager = await getEventManager ( client ) ;
222
- await readDocumentViaSnapshotListener (
223
- eventManager ,
224
- firestore . _queue ,
225
- reference . _key ,
226
- { source : 'server' } ,
227
- deferred
228
- ) ;
229
- } ) ;
230
- return deferred . promise . then ( snapshot =>
231
- convertToDocSnapshot ( firestore , reference , snapshot )
232
- ) ;
195
+ return firestoreClientGetDocumentViaSnapshotListener ( client , reference . _key , {
196
+ source : 'server'
197
+ } ) . then ( snapshot => convertToDocSnapshot ( firestore , reference , snapshot ) ) ;
233
198
}
234
199
235
200
/**
@@ -249,19 +214,10 @@ export function getDocs<T>(query: Query<T>): Promise<QuerySnapshot<T>> {
249
214
const userDataWriter = new ExpUserDataWriter ( firestore ) ;
250
215
251
216
validateHasExplicitOrderByForLimitToLast ( query . _query ) ;
252
-
253
- const deferred = new Deferred < ViewSnapshot > ( ) ;
254
- firestore . _queue . enqueueAndForget ( async ( ) => {
255
- const eventManager = await getEventManager ( client ) ;
256
- await executeQueryViaSnapshotListener (
257
- eventManager ,
258
- firestore . _queue ,
259
- query . _query ,
260
- { source : 'default' } ,
261
- deferred
262
- ) ;
263
- } ) ;
264
- return deferred . promise . then (
217
+ return firestoreClientGetDocumentsViaSnapshotListener (
218
+ client ,
219
+ query . _query
220
+ ) . then (
265
221
snapshot => new QuerySnapshot ( firestore , userDataWriter , query , snapshot )
266
222
) ;
267
223
}
@@ -280,12 +236,7 @@ export function getDocsFromCache<T>(
280
236
const client = ensureFirestoreConfigured ( firestore ) ;
281
237
const userDataWriter = new ExpUserDataWriter ( firestore ) ;
282
238
283
- const deferred = new Deferred < ViewSnapshot > ( ) ;
284
- firestore . _queue . enqueueAndForget ( async ( ) => {
285
- const localStore = await getLocalStore ( client ) ;
286
- await executeQueryFromCache ( localStore , query . _query , deferred ) ;
287
- } ) ;
288
- return deferred . promise . then (
239
+ return firestoreClientGetDocumentsFromLocalCache ( client , query . _query ) . then (
289
240
snapshot => new QuerySnapshot ( firestore , userDataWriter , query , snapshot )
290
241
) ;
291
242
}
@@ -304,18 +255,9 @@ export function getDocsFromServer<T>(
304
255
const client = ensureFirestoreConfigured ( firestore ) ;
305
256
const userDataWriter = new ExpUserDataWriter ( firestore ) ;
306
257
307
- const deferred = new Deferred < ViewSnapshot > ( ) ;
308
- firestore . _queue . enqueueAndForget ( async ( ) => {
309
- const eventManager = await getEventManager ( client ) ;
310
- await executeQueryViaSnapshotListener (
311
- eventManager ,
312
- firestore . _queue ,
313
- query . _query ,
314
- { source : 'server' } ,
315
- deferred
316
- ) ;
317
- } ) ;
318
- return deferred . promise . then (
258
+ return firestoreClientGetDocumentsViaSnapshotListener ( client , query . _query , {
259
+ source : 'server'
260
+ } ) . then (
319
261
snapshot => new QuerySnapshot ( firestore , userDataWriter , query , snapshot )
320
262
) ;
321
263
}
@@ -778,25 +720,12 @@ export function onSnapshot<T>(
778
720
}
779
721
780
722
const client = ensureFirestoreConfigured ( firestore ) ;
781
-
782
- const wrappedObserver = new AsyncObserver ( observer ) ;
783
- const listener = new QueryListener (
723
+ return firestoreClientListen (
724
+ client ,
784
725
internalQuery ,
785
- wrappedObserver ,
786
- internalOptions
726
+ internalOptions ,
727
+ observer
787
728
) ;
788
- firestore . _queue . enqueueAndForget ( async ( ) => {
789
- const eventManager = await getEventManager ( client ) ;
790
- return eventManagerListen ( eventManager , listener ) ;
791
- } ) ;
792
-
793
- return ( ) => {
794
- wrappedObserver . mute ( ) ;
795
- firestore . _queue . enqueueAndForget ( async ( ) => {
796
- const eventManager = await getEventManager ( client ) ;
797
- return eventManagerUnlisten ( eventManager , listener ) ;
798
- } ) ;
799
- } ;
800
729
}
801
730
802
731
// TODO(firestorexp): Make sure these overloads are tested via the Firestore
@@ -851,26 +780,13 @@ export function onSnapshotsInSync(
851
780
) : Unsubscribe {
852
781
firestore = cast ( firestore , FirebaseFirestore ) ;
853
782
const client = ensureFirestoreConfigured ( firestore ) ;
854
-
855
783
const observer = isPartialObserver ( arg )
856
784
? ( arg as PartialObserver < void > )
857
785
: {
858
786
next : arg as ( ) => void
859
787
} ;
860
788
861
- const wrappedObserver = new AsyncObserver ( observer ) ;
862
- firestore . _queue . enqueueAndForget ( async ( ) => {
863
- const eventManager = await getEventManager ( client ) ;
864
- addSnapshotsInSyncListener ( eventManager , wrappedObserver ) ;
865
- } ) ;
866
-
867
- return ( ) => {
868
- wrappedObserver . mute ( ) ;
869
- firestore . _queue . enqueueAndForget ( async ( ) => {
870
- const eventManager = await getEventManager ( client ) ;
871
- removeSnapshotsInSyncListener ( eventManager , wrappedObserver ) ;
872
- } ) ;
873
- } ;
789
+ return firestoreClientAddSnapshotsInSyncListener ( client , observer ) ;
874
790
}
875
791
876
792
/** Locally writes `mutations` on the async queue. */
0 commit comments