我正在try 从数据中的‘USERS’集合中提取数据,其中用户名与搜索查询匹配/部分匹配.我的用户文档现在只有3个字段:1.name 2.Email 3.uid.我是第一次与Firebase合作.非常感谢您的帮助.以下是代码片段:

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’.

推荐答案

您拥有随机用户,因为您将">="用作Query operators,了解一下here在使用字符串时这是如何工作的.


在您的示例中,需要使用==运算符:

const q = query(usersRef, where("name", "==", searchQuery));

或者可能是array-contains个操作员:

const q = query(usersRef, where("name", "array-contains", searchQuery));

此查询返回名称字段为包含searchQuery的数组的每个用户文档.如果数组具有您查询的值的多个实例,则该文档仅包含在结果中一次.

Reactjs相关问答推荐

如何防止使用useCallback和memo重新渲染

为什么我的react虚拟化列表不显示滚动条,除非我确保高度低于rowCount*rowHeight?

React:关于useEffect钩子如何工作的困惑

蚂蚁 Select .列表弹出窗口不会';有时不会出现

在迭代状态时无法读取未定义的属性(读取 map )

Javascript - 正则表达式不适用于 MAC OS - 编码?

在 React 中将 MUI 样式外包到单独的文件中?

React中的功能性组件克隆优化

未捕获的运行时错误:对象作为 React 子项无效

useEffect 渲染没有依赖数组的组件

React + Redux:数据未正确传递给具有动态路由的组件

在 React 中使用复选框管理状态

如何在同一路由路径上重新渲染组件(链接,V6)reactjs

React Native - 身份验证 - 触发值以更改 Auth 和 UnAuth 堆栈导航器

Mui CardMedia 的图片组件

用 scss 覆盖 MUI

在视图列表上react 本机无限循环的反弹动画?

单击三个按钮之一后如何显示特定按钮的内容?单击其中一个按钮后应隐藏所有按钮

如何防止 mui x-date-picker 被截断?

useEffect 仅在跟随链接后有效,不适用于直接链接