diff --git a/.changeset/lemon-ravens-sneeze.md b/.changeset/lemon-ravens-sneeze.md new file mode 100644 index 00000000000..872c1fea682 --- /dev/null +++ b/.changeset/lemon-ravens-sneeze.md @@ -0,0 +1,5 @@ +--- +"@firebase/firestore": patch +--- + +Queries are now send to the backend before the SDK starts local processing, which reduces overall Query latency. diff --git a/packages/firestore/src/core/sync_engine_impl.ts b/packages/firestore/src/core/sync_engine_impl.ts index c2e42c74a6b..ae1ab104df4 100644 --- a/packages/firestore/src/core/sync_engine_impl.ts +++ b/packages/firestore/src/core/sync_engine_impl.ts @@ -314,6 +314,9 @@ export async function syncEngineListen( syncEngineImpl.localStore, queryToTarget(query) ); + if (syncEngineImpl.isPrimaryClient) { + remoteStoreListen(syncEngineImpl.remoteStore, targetData); + } const status = syncEngineImpl.sharedClientState.addLocalQueryTarget( targetData.targetId @@ -325,9 +328,6 @@ export async function syncEngineListen( targetId, status === 'current' ); - if (syncEngineImpl.isPrimaryClient) { - remoteStoreListen(syncEngineImpl.remoteStore, targetData); - } } return viewSnapshot;