我有一个应用程序,可以将用户每10分钟执行的步骤添加到Firestore中。
这样的文档是在用户的步骤集合下创建的:
/users/{uid}/steps/{stepId} = {
created: 1558685078, //epoch seconds
steps: 5,
}
我想获得以下排名:
现在这在SQL中将是微不足道的,因为您可以使用GROUP,SUM和COUNT快速获得排名,并在过去的24小时内创建> now_epoch-60 * 60 * 24时获得WHERE。
但是Firestore如何实现呢?
我当前的想法是每隔一小时左右在服务器端更新一次排名,但我想更接近实时。
或者在创建步骤doc时触发云功能以更新用户的计数器,例如user.steps_last_24_hours。但是我无法完全想象这将如何工作,或者无法说明原因。
有什么想法吗? :)