Firestore документы с пользовательскими идентификаторами документов не получаются - PullRequest
0 голосов
/ 09 марта 2019

Это коллекция Firestore с пользовательскими идентификаторами документов, которые фактически являются датами в виде строки. Целью такого вида пользовательского идентификатора является получение документов определенной даты.

enter image description here

Вот код:

FirebaseFirestore.getInstance().collection("Users")
                    .document(FirebaseAuth.getInstance().getUid())
                    .collection("Bookings By Date")
                    .get().addOnCompleteListener(new 

OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if (task.isSuccessful()) {
                        Log.d(TAG, "onComplete: called");
                        Log.d(TAG, "onComplete: task result = " + task.getResult());
                        Log.d(TAG, "onComplete: task.getResult().getDocuments().size() = " + task.getResult().getDocuments().size());
                        QuerySnapshot queryDocumentSnapshots = task.getResult();

            }
        }
    });

enter image description here Вот Logcatlogs, где task.getResult (). GetDocuments (). Size () возвращает 0 , он должен вернуть 3 , так как у меня есть 3 документа в коллекции.

Ответы [ 2 ]

1 голос
/ 09 марта 2019

Документ может фактически быть пустым в Firestore, это означает, что может иметь документ без данных, и ваш код загрузит его.

Однако в этом случае на скриншоте вы видите, что 1-4-2019 имя документа отображается курсивом , что означает, что этот документ не существует. Консоль просто показывает это имя в списке, потому что под этим путем есть подколлекции. А поскольку документ 1-4-2019 не существует, он не будет возвращен при загрузке всех документов.

Короче говоря:

  • Документ может быть пустым, что означает, что вы можете иметь документ без полей данных.
  • Все документы (включая пустые) возвращаются при чтении всех документов из коллекции.
  • Если в пути есть подколлекции, для которых нет документа, консоль Firestore покажет курсивом заголовок несуществующего документа.
  • Несуществующие документы не возвращаются при чтении всех документов из коллекции.

Также см .:

0 голосов
/ 09 марта 2019

Проблема решена.Если в документе пожарного депо нет поля, метод CollectionReferece # get () пропускает эти документы.

enter image description here

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