В Cloud Firestore, как получить все предметы, которые соответствуют некоторым условиям у детей - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть такая структура базы данных в Cloud Firestore of Firebase:

{
  "Club": [
    {
      "name": "club one",
      "address": "via Roma",
      "owners": [
        {
          "name": "Mario Rossi",
          "id": "1"
        },
        {
          "name": "Giorgio Verdi",
          "id": "2",
        }
      ]
    },
    {
      "name": "club two",
      "address": "via milano",
      "owners": [
        {
          "name": "Giorgio Verdi",
          "id": "2"
        }
      ]
    }
  ]
}

Я бы хотел получить в Swift 4 все клубы, у которых есть владелец с id = 2.

Этот код не работает для меня:

let citiesRef = db.collection("clubs")
.whereField( "owners", arrayContains: 2)
.getDocuments()

Это реальная структура базы данных:

enter image description here

1 Ответ

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

Нет способа запросить это в вашей текущей структуре. Вы хотите сохранить отдельный массив идентификаторов владельцев, чтобы разрешить этот запрос:

  "owner-ids": [ "1", "2" ],
  "owners": [
    {
      "name": "Mario Rossi",
      "id": "1"
    },
    {
      "name": "Giorgio Verdi",
      "id": "2",
    }
  ]

Теперь вы можете использовать array-contains в массиве owner-ids.

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