diff --git a/firebase-firestore/src/main/java/com/google/firebase/firestore/core/FirestoreClient.java b/firebase-firestore/src/main/java/com/google/firebase/firestore/core/FirestoreClient.java index 7424483b18a..3a58a640770 100644 --- a/firebase-firestore/src/main/java/com/google/firebase/firestore/core/FirestoreClient.java +++ b/firebase-firestore/src/main/java/com/google/firebase/firestore/core/FirestoreClient.java @@ -265,10 +265,11 @@ public void addSnapshotsInSyncListener(EventListener listener) { } public void removeSnapshotsInSyncListener(EventListener listener) { + // Checks for shutdown but does not raise error, allowing remove after shutdown to be a no-op. if (isTerminated()) { return; } - eventManager.removeSnapshotsInSyncListener(listener); + asyncQueue.enqueueAndForget(() -> eventManager.removeSnapshotsInSyncListener(listener)); } private void verifyNotTerminated() {