lazy-loading - Firebase 延迟加载

标签 lazy-loading firebase

我可以让 firebase 延迟加载我的数据吗?假设我的应用程序由一棵具有一百万个节点的树组成,用户可以折叠、展开和修改。这些节点中的绝大多数在绝大多数时间都会保持折叠状态,因此将所有内容都保留在内存中是没有意义的。据我所知,Firebase 在启动时将数据库中的所有内容传输到客户端,并且不打算以任何其他方式使用。这是正确的吗?

最佳答案

这是不正确的。 Firebase 仅在您请求时同步数据。要完成这样的事情,关键在于如何存储数据。

例如,一个简单的例子是这个结构,它达到了预期的结果:

/records/root/record1
/records/root/record2
/records/record1/record1-1
/records/record2/record2-1

现在您以 ref.child('root_level').on('child_added'...) 作为起点。展开节点时,在子路径上运行 child_added

您还可以使用优先级,将所有记录存储在同一路径中,并根据优先级仅加载您需要的记录:

/records/record1 (priority null)
/records/record2 (priority null)
/records/record1-1 (priority 'record1')
/records/record2-1 (priority 'record2')

现在,要检索您的根记录,您可以使用:

ref.child('records').startAt(null).endAt(null)

当节点展开时,您可以使用以下内容:

ref.child('records').startAt(parentId).endAt(parentId)

关于lazy-loading - Firebase 延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16255979/

相关文章:

java - Hibernate - 避免 LazyInitializationException - 从代理和 session 中分离对象

javascript - 用户信息不显示

javascript - 在 angularjs(2k 行)中加载大量数据后浏览器被卡住

lazy-loading - 延迟加载或巨大的 CSS-sprite(大小为 9MB)

android - 拒绝类 com.google.firebase.database.FirebaseDatabase 因为它未通过编译时验证

android - 在 android 中禁用 google ML Kit 库的 firebase 日志记录

node.js - 部署错误 Node.js 8 ...函数部署出现以下函数错误 : dialogflowFirebaseFulfillment

ios - iOS 中的 CleverTap 通知设置

javascript - 如何在 React 中延迟加载 js 文件(针对多语言应用程序)

java - 如何以惰性方式连接java中的两个集合?