Как искать несколько значений в поле документов Firebase Cloud? - PullRequest
1 голос
/ 07 апреля 2020

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

{
"Trainers": {
    "trainer1": {
        "brand": "Nike",
        "name": "Air Force 1",
        "colour": "Black"
        "url": ".................."   //FOR IMAGES

    },
    "trainer2": {
        "brand": "Adidas",
        "name": "Yeezy Boost 700",
        "colour": "Black"
        "url": ".................."   
    },
    "trainer3": {
        "brand": "Nike",
        "name": "Air Spiridons",
        "colour": "Cream"
        "url": ".................."   
    }
  }  
 }

Затем я собирался получить еще одну коллекцию верхнего уровня, которая содержит документы, названные в качестве идентификатора пользователя, за которым следует массив их избранных. имя тренера. Однако, чтобы заполнить страницу избранного, мне нужно было бы найти коллекцию «Тренер» для каждой обуви в документе избранного пользователя.

Итак, возвращаясь к моему вопросу, понравился ли пользователь1 «ВВС» 1 & Yeezy Boost 700 '(или, может быть, больше продуктов, чем это), можно ли запросить коллекцию, в которой поле имени документа равно нескольким значениям, или есть лучший способ структурировать избранное?

1 Ответ

1 голос
/ 07 апреля 2020

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

Конечно, используя массив, который может содержать не более 10 значений. В соответствии с документами:

Аналогично, используйте оператор массив-содержащий-любой, чтобы объединить до 10 предложений-массивов в одном поле с логическим OR.

.

Так что в вашем случае вы должны использовать следующий запрос:

usersRef.whereArrayContainsAny("name", Arrays.asList("Air Force 1", "Yeezy Boost 700"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...