Jes*_*dge 2 lazy-loading firebase
我可以让firebase懒洋洋地加载我的数据吗?假设我的应用程序由一个包含一百万个节点的树组成,用户可以折叠,展开和修改.绝大多数节点将在绝大多数时间内保持崩溃状态,因此将所有内容保存在内存中是没有意义的.据我所知,firebase在启动时将数据库中的所有内容传输到客户端,并不打算以任何其他方式使用.那是对的吗?
那是不对的.Firebase仅在您请求时同步数据.要完成这样的事情,关键是如何存储数据.
例如,一个简单的例子就是这种结构,它可以达到预期的效果:
/records/root/record1
/records/root/record2
/records/record1/record1-1
/records/record2/record2-1
Run Code Online (Sandbox Code Playgroud)
现在你做ref.child('root_level').on('child_added'...)你的起点.展开节点时,child_added在子路径上运行a .
您还可以使用优先级,将所有记录存储在同一路径中,并根据优先级仅加载您需要的记录:
/records/record1 (priority null)
/records/record2 (priority null)
/records/record1-1 (priority 'record1')
/records/record2-1 (priority 'record2')
Run Code Online (Sandbox Code Playgroud)
现在,要检索根记录,请使用:
ref.child('records').startAt(null).endAt(null)
Run Code Online (Sandbox Code Playgroud)
展开节点时,使用以下命令:
ref.child('records').startAt(parentId).endAt(parentId)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1374 次 |
| 最近记录: |