如何使用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
       }
    })
  }