react-native如何删除firebase快照上的持久性

Posted

技术标签:

【中文标题】react-native如何删除firebase快照上的持久性【英文标题】:react-native how to remove persistence on firebase snapshot 【发布时间】:2021-11-01 12:20:24 【问题描述】:

我有点困惑。 我正在使用下面的示例代码收听 Firebase 快照

unsubscribe = firebase
    .firestore()
    .collection('collection')
    .doc(id)
    .onSnapshot(
        function(doc) 
            // other code
        ,
    );

如果有特定 id 的新项目,这将侦听集合。 然后,关闭应用程序将取消订阅快照

useEffect(() => 
    return () => 
        if (unsubscribe) 
            unsubscribe()
        
    
, []);

一切正常。

但是,鉴于场景。

    如果触发了快照(例如 value: 1 )然后我关闭了应用程序。 删除了 Firebase 上特定 ID 的值。 (意思是 id 不应该收到该物品) 重新打开应用 我仍然得到之前的值,即 value: 1,然后得到未定义的最新值(因为我删除了该值)

该值是否保留在应用程序上?重新打开应用后如何删除这个?

谢谢!

【问题讨论】:

【参考方案1】:

From this answer:

API 中现在有一个用于清除持久性的功能。不推荐用于测试,但您可以使用

firebase.firestore().clearPersistence().catch(error => 
  console.error('Could not enable persistence:', error.code);
)

它必须在使用 Firestore 数据库之前运行。

【讨论】:

以上是关于react-native如何删除firebase快照上的持久性的主要内容,如果未能解决你的问题,请参考以下文章

如何将 FCM(firebase 云消息传递)与 react-native 集成

如何等待firebase数据获取完成并在react-native中获取不是承诺的值?

Firebase 和 react-native 集成

我们如何将 Firebase Analytics 与基于 expo 的 react-native 应用程序一起使用

当应用程序未在 React-Native firebase 中运行时如何设置通知声音

如何在不影响实时功能的情况下为 React 和 React-native 托管通用的 Firebase 后端代码?