onSnapshot 不会在 Web 版本 9 的 ReactJS 项目的 Vercel 中触发

onSnapshot not triggering in vercel for ReactJS project for Web Version 9

我正在学习 ReactJS,我是初学者。

我正在尝试从 firebase firestore 获取实时数据变化。

useEffect(() => {
    getValues();
  });
const q = query(collection(db, "users"));
const getValues = onSnapshot(q, (querySnapshot) => {
    const updateUser = [];
    querySnapshot.forEach((doc) => {
      updateUser.push(doc.data());
    });
    setUsers([...updateUser]);
  });

感谢您的帮助。

getValues() 实际上会 unsubscribe 来自听众。 onSnapshot returns 可用于停止侦听器的函数,在本例中为 getValues。尝试将您的代码重构为:

useState(() => {
  const q = query(collection(db, "users"));
  onSnapshot(q, (querySnapshot) => {
    const updateUser = [];
    querySnapshot.forEach((doc) => {
      updateUser.push(doc.data());
    });
    setUsers([...updateUser]);
  });
}, [])