此问题在此处已有答案:
Firestore - query where filter of object in array field(1个答案)
Firestore array-contains-any is not working properly(1个答案)
Firestore: How to query data from a map of an array(4个答案)
4天前关闭。
这篇文章是4天前编辑并提交审查的。
我的数据库是这样的:
我尝试例如“Ricardo Meireles”与以下代码:
const getTarefasFuncionario = async () => {
setTarefasFuncionario([]);
const q = query(
collection(db, "tarefas"),
where("funcionarios", "array-contains", {
photoURL: currentUser.photoURL,
value: currentUser.displayName,
})
);
const querySnapshot = await getDocs(q);
const tarefas = [];
querySnapshot.forEach((doc) => {
tarefas.push({ ...doc.data() });
console.log(doc.data());
});
tarefas.forEach((tarefa) => {
const data = tarefa.dia.toDate();
const options = { day: "2-digit", month: "2-digit", year: "numeric" };
tarefa.dia = data.toLocaleDateString("pt-BR", options);
});
setTarefasFuncionario(tarefas);
};
但它没有得到任何东西,我试图使用这样的firebase查询系统:
但它也没有工作,我做错了什么?
我期待一个“tarefas”数组,它包含用户作为“funcionario”
1条答案
按热度按时间avwztpqn1#
array-contains
操作在数组中查找与您指定的值完全匹配的项。因此,要匹配数组中的项,您需要指定值和照片URL。没有操作符可以对数组项进行部分匹配。常见的解决方法是添加一个 additional 数组字段,其中 just 为您要搜索的值,例如。
有了这个额外的字段,您现在可以在
funcionarioNames
上执行array-contains
。另见: