使用大型数据集的Firebase性能

我正在testing一个项目的firebase,这个项目可能有相当多的密钥,可能是数百万。

我testing过使用节点加载几十千条logging,并且加载性能看起来不错。 但是,“FORGE”Web用户界面变得不可用的慢,如果我展开我的根节点呈现每一个logging。

Firebase不是为这个数据量devise的,还是我做错了什么?

这只是Forge UI的限制。 这还是相当不成熟的。

Firebase中的实时function不仅适用于大型数据集,而且适用于大型数据集。 实时loggingstream的事实是完美的。

与任何大型数据应用程序一样,性能也与您的实现一样好。 所以这里有一些需要记住的大数据集。

分化,分化,分化

如果一个数据集将被迭代,并且它的logging可以以数千计算,那么将其存储在自己的path中。

这对迭代大数据集是不利的:

/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必须将整个logging集加载到客户端。

留意儿童的隐藏value操作

当你打电话给child_added ,你实际上是在每个孩子的logging上调用value 。 所以如果这些孩子包含大的列表,他们将不得不加载所有的数据返回。 因此,上面的DENORMALIZE部分。