如何使用ReactJS在Firestore的不同集合中查找用户?
我有两个集合:如何使用ReactJS在Firestore的不同集合中查找用户?,reactjs,google-cloud-firestore,Reactjs,Google Cloud Firestore,我有两个集合:users\u unprocessed和users\u processed。当用户是新用户时,他将被添加到users\u unprocessed集合中。如果他被处理,他将被删除并添加到users\u processed 我想创建一个包含所有用户的列表。因此,我需要在users\u processed或users\u unprocessed中找到一个用户。列表应该是反应式的,并显示实时更新,因此我需要使用.onSnapshot() 无论users\u unprocessed或user
users\u unprocessed
和users\u processed
。当用户是新用户时,他将被添加到users\u unprocessed
集合中。如果他被处理,他将被删除并添加到users\u processed
我想创建一个包含所有用户的列表。因此,我需要在users\u processed
或users\u unprocessed
中找到一个用户。列表应该是反应式的,并显示实时更新,因此我需要使用.onSnapshot()
无论
users\u unprocessed
或users\u processed
中是否存在文档,此代码都不会给出任何结果。如果两个集合都设置正确,您只需对它们中的每一个使用forEach函数,并将它们放在数组或列表中或任何您想要的位置。诸如此类:
const alluser=[];
database.collection(“users_unprocessed”).onSnapshot((querySnapshot)=>{
querySnapshot.forEach((doc)=>{
推送(doc.data().name);
});
});
然后可以对同一列表中的其他集合执行相同的操作。如果您不想将它们放在数组中,但是您有其他方法或函数,那么只需要更改最后一部分
database.collection("users_unprocessed").doc(id).onSnapshot((snapshot) => {
if (snapshot.numChildren > 0) {
setFetchedUser(snapshot.data());
} else {
database.collection('users_unprocessed').doc(id).onSnapshot((snap) => {
if (snapshot.numChildren > 0) {
assignUser(snap)
} else {
// Error Handling
}
})
}