-
Notifications
You must be signed in to change notification settings - Fork 626
Description
- Android Studio version: 3.4.1
- Firebase Component: Firestore
- Component version: 19.0.2
Writing FieldValue.increment(1) together with FieldValue.serverTimestamp() to document while being offline results in a crash the second time:
Caused by: java.lang.AssertionError: INTERNAL ASSERTION FAILED: Encoded field value should not be null.
Steps to reproduce & Relevant Code:
When internet connection is not available:
'''
FirebaseFirestore db = FirebaseFirestore.getInstance();
Map<String, Object> map1 = new HashMap<>();
map1.put("field1", FieldValue.increment(1));
map1.put("field2", FieldValue.serverTimestamp());
db.collection("temp").document("temp").set(map1, SetOptions.merge());
db.collection("temp").document("temp").set(map1, SetOptions.merge());
'''
Stack trace:
java.lang.RuntimeException: Internal error in Firestore (19.0.2).
at com.google.firebase.firestore.util.AsyncQueue.lambda$panic$5(com.google.firebase:firebase-firestore@@19.0.2:379)
at com.google.firebase.firestore.util.AsyncQueue$$Lambda$5.run(Unknown Source:2)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6718)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: java.lang.AssertionError: INTERNAL ASSERTION FAILED: Encoded field value should not be null.
at com.google.firebase.firestore.util.Assert.fail(com.google.firebase:firebase-firestore@@19.0.2:46)
at com.google.firebase.firestore.util.Assert.hardAssert(com.google.firebase:firebase-firestore@@19.0.2:31)
at com.google.firebase.firestore.remote.RemoteSerializer.encodeValue(com.google.firebase:firebase-firestore@@19.0.2:263)
at com.google.firebase.firestore.remote.RemoteSerializer.encodeMapValue(com.google.firebase:firebase-firestore@@19.0.2:360)
at com.google.firebase.firestore.remote.RemoteSerializer.encodeValue(com.google.firebase:firebase-firestore@@19.0.2:276)
at com.google.firebase.firestore.remote.RemoteSerializer.encodeDocument(com.google.firebase:firebase-firestore@@19.0.2:389)
at com.google.firebase.firestore.remote.RemoteSerializer.encodeMutation(com.google.firebase:firebase-firestore@@19.0.2:436)
at com.google.firebase.firestore.local.LocalSerializer.encodeMutationBatch(com.google.firebase:firebase-firestore@@19.0.2:169)
at com.google.firebase.firestore.local.SQLiteMutationQueue.addMutationBatch(com.google.firebase:firebase-firestore@@19.0.2:188)
at com.google.firebase.firestore.local.LocalStore.lambda$writeLocally$1(com.google.firebase:firebase-firestore@@19.0.2:237)
at com.google.firebase.firestore.local.LocalStore$$Lambda$2.get(Unknown Source:8)
at com.google.firebase.firestore.local.SQLitePersistence.runTransaction(com.google.firebase:firebase-firestore@@19.0.2:200)
at com.google.firebase.firestore.local.LocalStore.writeLocally(com.google.firebase:firebase-firestore@@19.0.2:201)
at com.google.firebase.firestore.core.SyncEngine.writeMutations(com.google.firebase:firebase-firestore@@19.0.2:227)
at com.google.firebase.firestore.core.FirestoreClient.lambda$write$11(com.google.firebase:firebase-firestore@@19.0.2:215)
at com.google.firebase.firestore.core.FirestoreClient$$Lambda$11.run(Unknown Source:6)
at com.google.firebase.firestore.util.AsyncQueue.lambda$enqueue$4(com.google.firebase:firebase-firestore@@19.0.2:311)
at com.google.firebase.firestore.util.AsyncQueue$$Lambda$4.call(Unknown Source:2)
at com.google.firebase.firestore.util.AsyncQueue.lambda$enqueue$3(com.google.firebase:firebase-firestore@@19.0.2:287)
at com.google.firebase.firestore.util.AsyncQueue$$Lambda$3.run(Unknown Source:4)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.firebase.firestore.util.AsyncQueue$DelayedStartFactory.run(com.google.firebase:firebase-firestore@@19.0.2:205)
at java.lang.Thread.run(Thread.java:764)