2013-04-27 155 views
2

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

回答

5

这是不正确的。 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)