首页 > 解决方案 > 为什么我们被迫将 keepSynced 与 firebase 数据库一起使用?

问题描述

我正在使用带有 Firebase 实时数据库的本机反应。测试一个简单的聊天应用程序,我正在获取这样的聊天:

 this.friendChatRef = this.db.ref('messages/' + this.chat_id + '/' + this.friend_id)

 const friendChatRef = this.friendChatRef.limitToLast(9)

 const fcrp = friendChatRef.once('value')

目标是在组件/视图挂载时始终从对话中获取最后 9 条消息。

问题是它将获取 9 个聊天,但无论如何它们都不是最新的。我可以添加 10 多条新消息,但在添加以下内容之前永远不会获取它们:

 friendChatRef.keepSynced(true)

然后每次我访问聊天时,它都会获取最新的 9 条消息。

为什么我们必须使用 keepSynched?我认为持久性仅用于离线数据缓存,但每次创建 ref 并获取数据时,它总是检查缓存的数据是否已过时?

有没有办法保持持久性而不使用 keepSynched 来获取最新数据?

标签: javascriptreact-nativefirebase-realtime-database

解决方案


推荐阅读