开发者问题收集

如何使用索引数组从 firebase 获取数据?React/Node.js

2020-10-11
481

我尝试使用索引数组作为条件从 firebase 获取数据。

我有一个类别数组,我需要从数组中获取具有类别的所有项目。一个项目可以有多个类别。 我尝试过类似的方法,但 foreach 对集合没有任何作用。我知道您无法将数组传递给 firebase,所以我需要其他解决方案。

const getItemsByCategories = (categories: string[]) => {
  const collection = db.collection("items");

  categories.forEach(category => {
    collection.where("category", "array-contains", category);
  });

  return collection.get().then(mapQuerySnapshot);
};
1个回答

如果“类别”字段是一个列表,而您要查找包含内存中另一个列表中的 任何 项目的 所有 文档,则应改用 array-contains-any 查询。您可以直接传递数组:

const collection = db.collection("items")
const query = collection.where("category", "array-contains-any", categories);
query.get().then(...)
Doug Stevenson
2020-10-11