我正在测试firebase的项目可能有相当多的密钥,可能是数百万。
我已经测试过使用节点加载几个10k的记录,并且负载性能看起来很好。但是,如果我扩展我的根节点,“FORGE”Web UI会变得非常慢并呈现每条记录。
Firebase不是针对此数据量设计的,还是我做错了什么?
答案 0 :(得分:72)
这仅仅是Forge UI的局限性。它仍然相当简陋。
Firebase中的实时功能不仅适用于大型数据集,而且适用于大型数据集。实时记录流的事实是完美的。
与任何大型数据应用一样,性能仅与您的实施一样好。所以这里有一些要记住大数据集的问题。
异常,异常,异常
如果将迭代数据集,并且其记录可以以千计数,则将其存储在自己的路径中。
这对迭代大型数据集不利:
/users/uid
/users/uid/profile
/users/uid/chat_messages
/users/uid/groups
/users/uid/audit_record
这适用于迭代大型数据集:
/user_profiles/uid
/user_chat_messages/uid
/user_groups/uid
/user_audit_records/uid
避免对大型数据集“重视”
使用child_added
,因为value
必须将整个记录集加载到客户端。
关注对儿童的隐藏value
操作
当您致电child_added
时,您实际上是在每个子记录上调用value
。因此,如果这些孩子包含大型列表,他们将不得不加载所有要返回的数据。因此,上面的DENORMALIZE部分。