Firebase线性节点
问题描述:
我开始使用Firebase存储数据信息。我了解到,把它放在一个狭窄的结构而不是深层结构中会更好。Firebase线性节点
我有以下结构:
MainDetail
-Kd92jd93kaod93 <----ID
-Kfirkd9rmtiepr
-.....More than 1 million more
我的问题是,我有超过一百万的数据和超过一百万的ID将在每一个主节点被存储在一个线性序列类似上面。
这是在一个节点中拥有所有ID的好方法吗?还是应该按照日期进一步细分?像...
01_MainDetail
-20170902
-Kd92jd93kaod93
-Kfirkd9rmtiepr
-....
-20170901
-Kd92jd93rt4e3
-Kfer5hrmtiepr
-....
-....
这违背了我在网上看了如我现在没有把它狭隘和有多个孩子。
当我有很多数据时,正确的方法是什么?
答
节点下的子节点数目没有实际的限制。这完全取决于你想如何访问这些子节点。特别是:
- 查询长列表的数据总是比查询更短的数据列表花费更多的时间。
- 从较长的列表中查询节点列表总是会更快地查询这些相同的节点。
见这些问题的答案更多:
- How many records/rows/nodes is alot in firebase?
- Firebase Performance: How many children per node?
- Does Firebase limitToLast() take increasing longer as a child's record count grows?
它往往是最好的对数据进行分区,以配合您希望如何访问它。您展示的第二个数据结构就是一个例子,因为它允许您访问特定日期的节点而无需查询它们。
答
好的方法是保持数据按照您在父节点下的日期块中说的那样组织。
这种方法不会给你带来麻烦。