反应原生firebase'平均'查询?

时间:2016-08-15 00:36:36

标签: firebase react-native firebase-realtime-database nosql

我来自php / mysql背景,json数据和firebase查询对我来说仍然很新。现在我在React Native中工作,我有一个数据集合,其中一个键存储一个整数。我想得到所有整数的平均值。我从哪里开始?

之前我使用过Firebases snapshot.numChildren函数,所以我对这个json世界有了更多的了解,但是任何形式的帮助都会受到赞赏。谢谢!

1 个答案:

答案 0 :(得分:4)

因此,您知道可以返回所有数据并确定平均值。我猜这是针对大量数据的,每次想要检索和平均时都不会返回整个节点。

这取决于这些数据是什么以及它是如何更新的,但我认为一个选项就是只需要一个单独的节点,每次添加或更改集合时都会更新。

这是一些非常粗略的伪代码。例如,如果您的数据库如下所示:

database
|
+--collection
|   |
|   +--item_one (probably a uid like -k2jduwi5j5j5)
|   |   |
|   |   +--number: 90
|   |
|   +--item_two
|   |   |
|   |   +--number: 70
|
+--collection_metadata
|   |
|   +--average: 80
|   |
|   +--number_of_items: 2

然后,当添加新项目时,您运行元数据计算:

var numerator = average * number_of_items + newItem.number;
number_of_items++; <-- this is your new number of items
numerator / number_of_items; <-- this is your new average

然后,当项目更新时,您运行元数据计算:

var numerator = average * number_of_items - changedItem.oldNumber + changedItem.newNumber;
numerator / number_of_items; <-- this is your new average

现在,当您需要此数据时,您始终可以获得此数据。