我有一个 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 请求发送到数据库,如下所示:
我的 onSnapshot 侦听器设置哪里出了问题?这种行为正常吗?
您成功找到答案了吗?我也面临着同样的问题。