РЕДАКТИРОВАТЬ: Судя по скриншоту, документация неверна, вы правы. Некоторые пояснения, независимо от того:
Это неправильно:
.whereField("category", arrayContains: ["Animals", "Dogs"])
arrayContains
должен вводить тип единственного числа того, что содержит этот массив (то есть строковый массив вводит строку), а не коллекцию,arrayContains
не выполняет операции ИЛИ или И, он выполняет только эквивалент одного экземпляра элемента в массиве.
Это правильно:
.whereField("category", arrayContains: "Dogs")
Это также правильно:
.whereField("category", arrayContainsAny: ["Animals", "Dogs"])
Запрос arrayContainsAny
выполняет операцию ИЛИ, где category
должен содержать «Животные» или «Собаки».
А для меры также существует in
, который выполняетоперация ИЛИ в поле, не являющемся коллекцией (т.е. не в массиве). Если бы поле «категория» было просто String
(а не Array
), вы могли бы выполнить запрос ИЛИ с помощью:
.whereField("category", in: ["Animals", "Dogs"])