Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase Firestore-如何按时间(在本例中按小时)聚合数据?_Firebase_Firebase Realtime Database_Group By_Google Cloud Firestore_Google Cloud Functions - Fatal编程技术网

Firebase Firestore-如何按时间(在本例中按小时)聚合数据?

Firebase Firestore-如何按时间(在本例中按小时)聚合数据?,firebase,firebase-realtime-database,group-by,google-cloud-firestore,google-cloud-functions,Firebase,Firebase Realtime Database,Group By,Google Cloud Firestore,Google Cloud Functions,我想在独特的访客图上生成一个如下所示的实时图(有点像google analytics)。 经过一些调查,我注意到Firestore不支持SQL中的分组方式 在下面的示例数据中,no.1和no.3在同一个小时内,但具有相同的用户_id=1。所以它应该算作1,而不是2。因此,10:00时访问“pen.com”网站的人数是1 我如何为site count unique Visitions时间序列聚合此数据,以我正在进行的按小时分组用户id的示例为例?有没有办法做到这一点,因为我看到谷歌分析可以做到这一

我想在独特的访客图上生成一个如下所示的实时图(有点像google analytics)。 经过一些调查,我注意到Firestore不支持SQL中的分组方式

在下面的示例数据中,no.1和no.3在同一个小时内,但具有相同的用户_id=1。所以它应该算作1,而不是2。因此,10:00时访问“pen.com”网站的人数是1

我如何为site count unique Visitions时间序列聚合此数据,以我正在进行的按小时分组用户id的示例为例?有没有办法做到这一点,因为我看到谷歌分析可以做到这一点,即使在几秒钟内()

下面是示例数据,我想聚合数据以显示下图。我绘制的图表是基于这个样本数据的


跟踪谷歌分析可能使用BigQuery而不是Firestore

Firestore是一个NoSQL数据库,由于它的结构,您不能使用group by和类似的增加复杂性的运算符,因为这不是它的本意()

对于您在问题中描述的用例,我宁愿选择SQL数据库,比如CloudSQL,因为它是非常结构化的数据


如果您仍然想使用Firestore进行此操作,也许您可以尝试使用,但请注意,它存在一些限制,并且您想要成为的东西可能也不可能使用它

谷歌分析可能使用BigQuery而不是Firestore

Firestore是一个NoSQL数据库,由于它的结构,您不能使用group by和类似的增加复杂性的运算符,因为这不是它的本意()

对于您在问题中描述的用例,我宁愿选择SQL数据库,比如CloudSQL,因为它是非常结构化的数据


如果您仍然想使用Firestore进行此操作,也许您可以尝试使用,但请注意,它存在一些限制,并且您想要成为的东西可能也不可能使用它

我已经放弃了这个想法,直到有一个真正的解决方案,时间序列似乎有点太难了,我相信他们必须认真研究一些事情。我正在迁移回SQL。我已经放弃了这个想法,直到有一个真正的解决方案,时间序列似乎有点太难了,我相信他们必须认真研究一些事情。我正在迁移回SQL。
  (10:00 hour)    

1. document(aaa123) <----------- inside 10:00 hour same place "pen.com"
user_id = 1
site_unique_identifier = "pen.com"
timestamp = 10/09/2019 10:11

2. document(xyz567)
user_id = 2
site_unique_identifier = "hex.com"
timestamp = 10/09/2019 10:15

3. document(qqq123) <----------- inside 10:00 hour same place "pen.com"
user_id = 1
site_unique_identifier = "pen.com"
timestamp = 10/09/2019 10:18

4. document(xyz567)
user_id = 3
site_unique_identifier = "hex.com"
timestamp = 10/09/2019 10:19

5. document(fff567)
user_id = 4
site_unique_identifier = "hex.com"
timestamp = 10/09/2019 10:19

  (11:00 hour)    

6. document(xxx123)
user_id = 1
site_unique_identifier = "hex.com"
timestamp = 10/09/2019 11:21

7. document(zzz123)
user_id = 2
site_unique_identifier = "hex.com"
timestamp = 10/09/2019 11:22

8. document(ggg123)
user_id = 2
site_unique_identifier = "pen.com"
timestamp = 10/09/2019 11:24
10:00
- pen.com - 1
- hex.com - 3
11:00
- pen.com - 1
- hex.com - 2