На самом деле, на момент написания невозможно, с array-contains
, запросить определенное свойство объекта, хранящегося в массиве.
Возможный обходной путь, который заключается в запросе для всего объекта .
В вашем случае это будет похоже на
db.collection('retros').where("cardsAction", "array-contains", {id: "65....", content: "this is...", time: ....})
, но, очевидно, этот обходной путь не будет полезен в вашем случае, так как оба time
и content
значения могут различаться.
Другими словами, вам, вероятно, потребуется изменить модель данных.
Один из возможных подходов - дублирование ваших данных (что довольно часто встречается в мире NoSQL).) и иметь другой массив только с ids
из cardAction
, например:
cardActionIds = ["65....", "5789", ....]
Таким образом, вы можете использовать array-contains
, и как только вы найдете документы, соответствующие cardActionIds
, выманипулировать другим массивом (то есть cardAction
)