2

我可以让 firebase 懒惰地加载我的数据吗?假设我的应用程序包含一棵树,其中包含一百万个节点,用户可以折叠、展开和修改这些节点。这些节点中的绝大多数将在绝大多数时间保持崩溃,因此将所有内容都保存在内存中是没有意义的。据我所知,firebase 在启动时会将数据库中的所有内容传输到客户端,并且不打算以任何其他方式使用。那是对的吗?

4

1 回答 1

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在子路径上运行 a。

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

/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)
于 2013-04-27T19:49:56.133 回答