在Firebase实时数据库限制文档中,您可以找到以下语句:
路径上具有侦听器或查询的节点总数:7500万
您不能监听或查询超过7500万个节点的路径, 累积的。但是,您仍然可以收听或查询子节点。尝试 深入探究路径或创建单独的侦听器,或 查询路径的更多特定部分。
如果我有这样的数据库模型,其中有7500万个条目(用户)...
{
users : {
uid1 : {age: 34, name: 'Tommy', links:{...} },
uid2 : {age: 78, name: 'Mikel', links:{...} },
uid3 : {age: 25, name: 'Chris', links:{...} },
...
uid75000000 : {age: 33, name: 'Sam', links:{...} },
}
...,然后将一个新用户添加到列表中。限制声明的意思是:
users
之类的onWrite()
上的监听器停止工作了吗? users
之类的usersRef.orderByChild("age").limitToLast(20)
路径的查询停止工作了吗?“累积”的含义是什么? 7500万个数字是否包括路径节点的子节点的子子节点?为什么否则使用累积一词呢?
答案 0 :(得分:0)
我相信每个键都是一个节点,因为Firebase实时数据库存储为JSON对象。
Firebase数据库最多允许32个子节点!
我不认为在一个列表中包含10亿个对象是理想的选择,我也不认为该数据库是为此目的而建立的!您可能需要考虑使用其他结构或sharding your data。
我不确定onWrite()函数的功能,但通常来说,用户将在侦听用户列表的子节点,所以不会有问题。
列出整棵树可能没有用,但用户会有所不同。
查询大列表将永远耗时,并且如果可行的话,代价会很高!同样,请考虑使用sharding your data。