我正在构建一个使用Firestore
作为后端的Android
应用程序。我正在向文档中的多个集合写入内容,在某些情况下,我可以在同一个WriteBatch
中对文档执行write
、update
和delete
操作。每当用户创建文档,然后在同一个WriteBatch
中deletes
文档时,我的应用程序就会崩溃。下面是我收到的代码和错误。
private void executeBatchedWrite() {
WriteBatch batch = db.batch();
DocumentReference doc = notebookRef.document("123");
batch.set(doc, new Note("New Note", "New Note", 1));
batch.update(doc, "timestamp", FieldValue.serverTimestamp());
batch.delete(doc);
batch.commit();
}
我的应用程序崩溃,并收到以下错误:
java.lang.RuntimeException: Internal error in Firestore (0.6.6-dev).
at com.google.firebase.firestore.g.zza.zzb(SourceFile:324)
at com.google.firebase.firestore.g.zzd.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
发布于 2018-06-10 02:07:20
我已经确定这是一个bug,并将其报告给Google。进一步的测试表明,该问题可能是由于将FieldValue.serverTimestamp()写入最终将在同一批写入中被删除的文档造成的。如果用不同的值(例如: System.currentTimeMillis())替换FieldValue.serverTimestamp(),这个问题似乎就消失了。
https://stackoverflow.com/questions/50673476
复制相似问题