Firebase读写速度

时间:2017-10-12 15:35:11

标签: firebase firebase-realtime-database nosql

假设我正在创建一个交易应用。

  • 我如何存储交易?

    我知道我需要反规范化。

  • 我是否会在第一个事务节点中保存事务 db级别?或者我会在每个用户的节点下保存交易节点吗?或者我会将它保存在第一级的事务节点和 每个用户节点下的事务节点?

  • 如果用户更改了名称,我将如何反映这些内容 用户和业务的交易历史记录的变化?

    我觉得最好的方法是将它放在数据库的第一级,并让用户查询整个列表以查看其交易历史记录。

  • 但是,如果我有很多用户不会这么慢?

    或者firebase足够智能且足够快以处理此类查询。

  • 用户的互联网速度是否影响此查询,尤其是在a 移动设备?

  • 您可以在加载时在屏幕上显示交易吗?

  • firebase索引是否允许我轻松地执行这些非常大的数据集查询?也许索引每个事务中包含的用户的用户名?

1 个答案:

答案 0 :(得分:2)

首先,我建议不要使用username过滤交易数据的历史记录,而是使用userId,它永远不会改变并且始终是唯一的。

其次,我认为全局保存事务(不使用'/userId')会更好。因为:

  1. 我们需要能够汇总会计原因的所有交易
  2. 如果您认为即使在使用索引后查询也会很慢,您可以考虑使用limitToFirst()加载部分查询结果,就像在web中的分页一样(android中的无限滚动)。有很棒的教程here
相关问题