firebase 快照监听器创建许多 LIST 请求

问题描述 投票:0回答:1

我有一个 React 组件,需要从 firestore 读取一些数据。我通过 useEffect 调用中的 onSnapshot 函数使用实时更新并返回,如下所示:

  const {id} = useParams()
  const [enrolled, setEnrolled] = useState(null) 

  //listener for new enrolled students
  useEffect(() => {
    const enrolledRef = collection(db, `modules/${id}/enrolled/`)
    const unsubscribe = onSnapshot(enrolledRef, (snapshot) => {
      let list = []
      snapshot.docs.forEach((doc) => {
        list.push({id:doc.id, ...doc.data()})
      })
      setEnrolled(list)
    }, (error)=> {
      console.log(error)
    });
    return () => unsubscribe()
  }, [])

但是,使用 firebase 模拟器对此进行测试,我看到很多 LIST 请求发送到数据库,如下所示:

emulator screenshot showing several LIST requests

我的 onSnapshot 侦听器设置哪里出了问题?这种行为正常吗?

reactjs google-cloud-firestore react-hooks firebase-tools
1个回答
0
投票

您成功找到答案了吗?我也面临着同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.