我有点糊涂了。我正在听firebase快照下面的示例代码
unsubscribe = firebase
.firestore()
.collection('collection')
.doc(id)
.onSnapshot(
function(doc) {
// other code
},
);
如果有特定id的新项,这将侦听集合。然后,关闭应用程序将取消订阅快照
useEffect(() => {
return () => {
if (unsubscribe) {
unsubscribe()
}
}
}, []);
It is working fine.
然而,鉴于这种情况。
- 如果快照被触发(例如:{value: 1})然后我关闭了应用程序。
- 删除firebase上指定id的值。(意思是id不应该接收到项目)
- 重新打开应用程序
- 我仍然得到前一个值是{value: 1},然后得到最新的值,这是未定义的(因为我删除了值)
该值是否在应用程序中保留?我如何在重新打开应用程序时删除这个?
谢谢!
从这个答案
API中现在有一个清除持久性的特性。除了测试之外,不建议使用
,但是您可以使用firebase.firestore().clearPersistence().catch(error => {
console.error('Could not enable persistence:', error.code);
})
它必须在使用Firestore数据库之前运行。