javascript - 如何将 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 对象来过滤数据。谢谢你。
解决方案
如果您尝试获取包含所有文档数据的对象数组来过滤它们,请尝试以下操作:
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"))
推荐阅读
- anylogic - 给定名字后如何获得代理?
- python - 有没有办法定期运行非 void python 函数?
- angular - Primeng p-menu 基于布尔检查以编程方式禁用菜单项
- javascript - 如何从javascript中获取动态变量的总数?
- r - R中的初学者for循环不循环
- gensim - 在基于 gensim 文件的训练中表示包含多个句子的文档的正确方法
- ios - 在 Xamarin.iOS 中解密推送通知的最佳方法是什么
- c# - 为什么我的标签助手无法正确解析?
- flutter - 为什么不调用自定义 ErrorWidget.builder?
- php - 将 php 从 5 升级到 7.2 和 .php MySQL 代码停止工作