我试图从“users”集合中获取数据,其中用户的名称匹配/部分匹配searchQuery。我的用户文档现在只有3个字段,www.example.com www.example.com 3.uid。1.name下面是代码片段:2.email 3.uid. Im working with firebase for the first time. Help is much appreciated. Here is the code snippet:
const results: TeamMemberData[] = [];
const usersRef = collection(db, "users");
const q = query(usersRef, where("name", ">=", searchQuery));
const querySnaphot = await getDocs(q);
querySnaphot.forEach((doc) => {
console.log(doc.data()); // this logs random user data
if (currentUser?.email !== doc.data().email)
results.push({
name: doc.data().name,
email: doc.data().email,
uid: doc.data().uid,
});
});
im logging the results here我希望得到的结果数组将只有那些用户的名字匹配在firestore文档中.我只输入'g',但我得到了四个用户,其中,三个甚至没有'g'在他们的name属性.
2条答案
按热度按时间uhry853o1#
你有随机的用户,因为你使用
">="
作为查询操作符,看看here如何使用字符串。在示例中,您需要使用
==
操作符:或者可以使用array-contains操作符:
此查询返回名称字段是包含
searchQuery
的数组的每个用户文档。如果数组具有您查询的值的多个示例,则该文档仅包含在结果中一次。nnsrf1az2#
你也可以尝试“in”,因为包括: