假设我正在创建一个交易应用。
我如何存储交易?
我知道我需要反规范化。
我是否会在第一个事务节点中保存事务 db级别?或者我会在每个用户的节点下保存交易节点吗?或者我会将它保存在第一级的事务节点和 每个用户节点下的事务节点?
如果用户更改了名称,我将如何反映这些内容 用户和业务的交易历史记录的变化?
我觉得最好的方法是将它放在数据库的第一级,并让用户查询整个列表以查看其交易历史记录。
但是,如果我有很多用户不会这么慢?
或者firebase足够智能且足够快以处理此类查询。
用户的互联网速度是否影响此查询,尤其是在a 移动设备?
您可以在加载时在屏幕上显示交易吗?
firebase索引是否允许我轻松地执行这些非常大的数据集查询?也许索引每个事务中包含的用户的用户名?
答案 0 :(得分:2)
首先,我建议不要使用username
过滤交易数据的历史记录,而是使用userId
,它永远不会改变并且始终是唯一的。
其次,我认为全局保存事务(不使用'/userId'
)会更好。因为:
limitToFirst()
加载部分查询结果,就像在web中的分页一样(android中的无限滚动)。有很棒的教程here