Поле MetaData DocumentSnapshot hasPendingWrites == true, в то время как родительский QueryDocumentSnapshot MeteData hasPendingWrites = false - PullRequest
0 голосов
/ 12 октября 2018

Я заметил, что поле MetaData DocumentSnapshot hasPendingWrites == true, а метаданные Parent QueryDocumentSnapshot hasPendingWrites = false в Android Firestore SDK при использовании обновления запросов в режиме реального времени.Это странно, потому что я хочу проверить, имеет ли отдельный DocumentSnapshot ожидающие записи в любой момент, когда есть изменение документа.

listenerRegistration = FirestoreUtils.getMessagesCollection(chatId)
            .addSnapshotListener(MetadataChanges.INCLUDE) { snapshot, exception ->
                if (exception != null) {
                    Timber.w("An error occurred while trying to load messages: $exception")
                    return@addSnapshotListener
                }

                Timber.d("Snapshot Meta: ${snapshot?.metadata}")

                snapshot?.documentChanges?.forEach { doChanges ->
                    when (doChanges.type) {
                        DocumentChange.Type.ADDED -> {
                            Timber.d("Doc Added: ${doChanges.document}")
                        }
                        DocumentChange.Type.MODIFIED -> {
                            Timber.d("Doc Modified: ${doChanges.document}")
                        }
                        DocumentChange.Type.REMOVED -> {
                            Timber.d("Doc Removed: ${doChanges.document}")

                        }
                    }


                }

Из-за этой добавленной опции: MetadataChanges.INCLUDE, событие изменения метаданных также запускается с использованиемВ журналах вы можете видеть, что журнал out перед циклом foreach имеет значение false, в то время как отдельные документы QueryDocumentSnapshot haspendingWrites имеют значение true.

Таким образом, вопрос в том, почему событие мета изменений не вызывает изменения документа?Есть ли способ узнать, какой документ вызвал изменения метаданных?

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