react-native - 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。如何正确实现此功能。
解决方案
推荐阅读
- winapi - 是否有任何 Win32 API 可以在运行时隐藏和显示菜单项?
- windows - 属性 OSK.EXE(屏幕键盘)+POWERSHELL +REGEDIT 的问题
- vbscript - 带有 SeleniumBasic 的 VBScript 自动关闭浏览器
- typescript - 如何使用 cypress 进行 if..then 测试流程
- javascript - 如何在 React 中创建可搜索的组件
- pine-script - 比较 Pinescript 中的负数
- android-studio - 底部导航视图,活动在 Kotlin 中不起作用
- r - 如何在R中生成连接的表格状图
- matlab - 在matlab中将扇区图像转换为矩形图像
- c++ - c ++犰狳库中的sort_index()函数给出错误的结果