База данных Firestore - документ не возвращен в коллекции - PullRequest
0 голосов
/ 29 ноября 2018

При запуске моего приложения создайте документ для текущего пользователя и добавьте его в мою коллекцию пользователей, используя следующий код:

let userId = Auth.auth().currentUser?.uid
Firestore.firestore()
    .collection("users").document(self.userId)
    .collection("MyCollection").document("aDocument")
    .setData(someData)

Данные созданы нормально - вот как это выглядит вБД .Документы, такие как 4GhpuyGRRhXEAYCllojaaJuwZq02 , созданы с помощью приведенного выше кода.и 'denver' создается вручную, когда я редактирую коллекцию в консоли Firestore.

Теперь моя проблема в том, когда я хочу позже получить всех пользователей, созданных в моей БД.Я делаю:

Firestore.firestore().collection("users").getDocuments { (snapshot) in
     print(snapshot?.documents.count) // prints 1
}

Единственный документ, возвращаемый здесь, - это Денвер, который введен вручную в БД ... Не уверен, что мне здесь не хватает.(неправильный вызов метода, аутентификация безопасности ...?)

1 Ответ

0 голосов
/ 30 ноября 2018

Ваш код на самом деле не создал документ с UID пользователя.Ваш код создал документ во вложенной коллекции под UID с именем MyCollection и идентификатором документа "aDocument".Это единственный документ, созданный.UID, которые вы видите в консоли, не являются действительными документами.Они просто «фантомные» заполнители, которые помогают организовать ваши подколлекции под ними.Вот почему они отображаются курсивом (в отличие от Денвера, который на самом деле является документом с фактическими полями).Обратите внимание, что когда вы нажимаете на одно, у которого нет никаких полей - это потому, что это на самом деле не документ.

Когда вы выбираете все документы у пользователей, единственный фактический документ, который вы собираетесь получить, этоДенвер, поэтому счетчик равен 1. Все остальное на самом деле не является документом и не влияет на счет.Документы во вложенных коллекциях не выбираются при вызове getDocuments.Запросы в Firestore мелкие - они не учитывают вложенные коллекции или документы под ними.

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