首页 > 解决方案 > 如何将 Firestore 数据转换为 JSON 对象?

问题描述

我有这些代码:

const App = () => {
  const [users, setUsers] = useState();

  const getData = async () => {
    const citiesRef = firestore.collection("users");
    const snapshot = await citiesRef
      .where("item.itemName", "==", true)
      .where("item", "==", false)
      .get();
    if (snapshot.empty) {
      console.log("No matching documents.");
      return;
    }

    snapshot.forEach((doc) => {
      console.log(doc.data());
    });
  };

  useEffect(() => {
    getData();
  });

  return <div>Month</div>;
};

export default App;

如果我愿意console.log(doc.data()),这就是显示的内容: 在此处输入图像描述

如何将其转换为 JSON 对象?

我想要一个 JSON 对象来过滤数据。谢谢你。

标签: javascriptreactjsfirebasegoogle-cloud-firestore

解决方案


如果您尝试获取包含所有文档数据的对象数组来过滤它们,请尝试以下操作:

const usersData = snapshot.docs.map(d => ({id: d.id, ...d.data()}))
// set this array in your state
setUsers(usersData)

这将是一个数组,您可以根据需要使用类似filter()的方法find()。例如,要让用户在其数组中具有admin角色:roles

const admins = usersData.filter(user => user.roles.includes("admin"))

推荐阅读