Как отфильтровать корневую коллекцию на основе значений в подсборке в Firestore? - PullRequest
1 голос
/ 03 октября 2019

Я использую базу данных Cloud Firestore в Swift iOS, я хочу отфильтровать список корневой коллекции на основе значений, доступных в каждой коллекции документов?

Корневая коллекция -> Сообщения -> документы-> Подколлекция -> документ -> fieldvalue

Значение «fieldvalue» должно определять список документов в сообщениях корневого собрания

Я попробовал это ниже, но этоне работает должным образом.

let postsRef = Firestore.firestore()
    .collection("posts")
    .document()
    .collection("comments")
    .whereField("comment_author_id", isEqualTo: Auth.auth().currentUser!.uid)
    .whereField("l1", isEqualTo: true)
    .limit(to: 50)

, пожалуйста, помогите

enter image description here

enter image description here

1 Ответ

2 голосов
/ 03 октября 2019

Ваш запрос не работает должным образом, потому что при вызове:

.document()

Сразу после:

.collection("posts")

Не передавая никаких аргументов, Firestore на самом деле не знает, какой вы документссылаясь на. Если вы хотите получить все комментарии в вашем документе 2czkDrrg4gHgXbCID69u, то вы должны передать этот идентификатор функции document() следующим образом:

.collection("posts").document("2czkDrrg4gHgXbCID69u")

Помните, что запросы Firestore мелкие, вы можете получать комментарии только отколлекция, к которой выполняется запрос. Один запрос может использовать только свойства документов в одной коллекции.

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

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