首页 > 解决方案 > Firestore 不断加载旧的更改

问题描述

我正在尝试创建一个 firestore 侦听器,它处理我的收藏的更改。经过一番研究,我实现了如下功能。

useEffect(() => {
  const firebaseApp = getFirebaseApp();
  const db = firestore(firebaseApp);
  const handleSnapshotChanges = ( snapshot: FirebaseFirestoreTypes.QuerySnapshot<FirebaseFirestoreTypes.DocumentData> ) => {
    const changes = snapshot.docChanges();

    changes.forEach((change) => {
      if (change.type === "added") {
        console.log(change.doc);
        console.log(change.type);
      }
      if (change.type === "modified") {
        console.log("Doc modified");
      }
      if (change.type === "removed") {
        console.log("Remove doc");
      }
    });
  };

  const query = db.collection("history");
  const unsubscribe = query.onSnapshot(handleSnapshotChanges, (err) =>
    console.log(err)
  );

  return () => {
    unsubscribe();
  };
}, []);

如果这样做,每次我进入放置上述 useEffect 的屏幕时,firestore 都会继续加载集合中的所有文档并将它们标记为added。如何正确实现此功能。

标签: react-nativegoogle-cloud-firestorereact-native-firebase

解决方案


推荐阅读