Skip to content

Commit 8003a69

Browse files
Don't double save Query Data (#767)
1 parent 7b9a57b commit 8003a69

File tree

1 file changed

+3
-21
lines changed
  • firebase-firestore/src/main/java/com/google/firebase/firestore/local

1 file changed

+3
-21
lines changed

firebase-firestore/src/main/java/com/google/firebase/firestore/local/LocalStore.java

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -574,29 +574,9 @@ public void releaseQuery(Query query) {
574574
persistence.runTransaction(
575575
"Release query",
576576
() -> {
577-
QueryData queryData = queryCache.getQueryData(query);
577+
QueryData queryData = getQueryData(query);
578578
hardAssert(queryData != null, "Tried to release nonexistent query: %s", query);
579579

580-
int targetId = queryData.getTargetId();
581-
QueryData cachedQueryData = targetIds.get(targetId);
582-
583-
boolean needsUpdate = false;
584-
if (cachedQueryData.getSnapshotVersion().compareTo(queryData.getSnapshotVersion()) > 0) {
585-
// If we've been avoiding persisting the resumeToken (see shouldPersistQueryData for
586-
// conditions and rationale) we need to persist the token now because there will no
587-
// longer be an in-memory version to fall back on.
588-
needsUpdate = true;
589-
} else if (!cachedQueryData
590-
.getLastLimboFreeSnapshotVersion()
591-
.equals(queryData.getLastLimboFreeSnapshotVersion())) {
592-
needsUpdate = true;
593-
}
594-
595-
if (needsUpdate) {
596-
queryData = cachedQueryData;
597-
queryCache.updateQueryData(queryData);
598-
}
599-
600580
// References for documents sent via Watch are automatically removed when we delete a
601581
// query's target data from the reference delegate. Since this does not remove references
602582
// for locally mutated documents, we have to remove the target associations for these
@@ -606,6 +586,8 @@ public void releaseQuery(Query query) {
606586
for (DocumentKey key : removedReferences) {
607587
persistence.getReferenceDelegate().removeReference(key);
608588
}
589+
590+
// Note: This also updates the query cache
609591
persistence.getReferenceDelegate().removeTarget(queryData);
610592
targetIds.remove(queryData.getTargetId());
611593
});

0 commit comments

Comments
 (0)