Firestore WriteBatch Сбой выполнения при использовании set (), update (), delete () в ссылке на документ - PullRequest
0 голосов
/ 04 июня 2018

Я создаю Android приложение, используя Firestore в качестве моего бэкэнда.Я пишу в несколько коллекций внутри документа, и в некоторых случаях могу write в документ, update документ, затем delete документ все в одном и том же WriteBatch.Всякий раз, когда пользователь создает, потом deletes документ в том же WriteBatch мое приложение падает.Ниже приведены код и ошибка, которую я получаю.

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)

1 Ответ

0 голосов
/ 09 июня 2018

Я определил, что это ошибка, и сообщил об этом в Google.Дальнейшее тестирование показывает, что эта проблема может быть связана с записью FieldValue.serverTimestamp () в документ, который в конечном итоге будет удален в той же пакетной записи.Если FieldValue.serverTimestamp () заменяется другим значением (например, System.currentTimeMillis ()), проблема, похоже, исчезнет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...