From 439340d5a9b746b0daa5f86d7a134b5d32efb099 Mon Sep 17 00:00:00 2001 From: Sebastian Schmidt Date: Thu, 25 Oct 2018 09:56:13 -0700 Subject: [PATCH] Starting the Mutation Queue in a Transaction --- .../google/firebase/firestore/local/LocalStore.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/firebase-firestore/src/main/java/com/google/firebase/firestore/local/LocalStore.java b/firebase-firestore/src/main/java/com/google/firebase/firestore/local/LocalStore.java index 64ccbb066b2..c3ef12277db 100644 --- a/firebase-firestore/src/main/java/com/google/firebase/firestore/local/LocalStore.java +++ b/firebase-firestore/src/main/java/com/google/firebase/firestore/local/LocalStore.java @@ -138,7 +138,15 @@ public LocalStore(Persistence persistence, User initialUser) { } public void start() { - mutationQueue.start(); + startMutationQueue(); + } + + private void startMutationQueue() { + persistence.runTransaction( + "Start MutationQueue", + () -> { + mutationQueue.start(); + }); } // PORTING NOTE: no shutdown for LocalStore or persistence components on Android. @@ -148,7 +156,7 @@ public ImmutableSortedMap handleUserChange(User user List oldBatches = mutationQueue.getAllMutationBatches(); mutationQueue = persistence.getMutationQueue(user); - mutationQueue.start(); + startMutationQueue(); List newBatches = mutationQueue.getAllMutationBatches();