【问题标题】:Number of users added in the last 7 days过去 7 天内添加的用户数
【发布时间】:2018-03-04 21:13:06
【问题描述】:

有没有办法检索过去 7 天内添加的所有用户?添加用户时,时间戳包括。日期被添加到他们的“信息”中。

例如这样:

所以日期公式是:D/M/YYYY。谁能帮我理解如何做到这一点?

PS:奇怪的OL3geebfiGfn..... etc是用户的唯一ID。

【问题讨论】:

  • 'a timestamp inc. date'...时间戳是一个通用日期。

标签: javascript firebase firebase-realtime-database


【解决方案1】:

首先,使用ServerValue.TIMESTAMP 以毫秒为单位存储“添加”字段。您可以参考this question 了解更多关于如何轻松做到这一点的信息。

所以,既然您已经以毫秒为单位存储了时间,那么您的“添加”字段将包含一个 Long 值。因此,您现在可以对查询执行过滤以获取所需的数据。

查看 Firebase 参考文档的 this part 以了解过滤方法 - 特别是 startAt()endAt()

例如,您要检索最近 7 天内添加的用户 - 所以 7 天以毫秒为单位是 86400000。您可以简单地运行类似于以下的查询来检索在“当前”期间添加的用户以毫秒为单位的时间”到“以毫秒为单位的当前时间 - 86400000”:-

firebase.database().ref('posts').startAt(current time - 86400000).endAt(current time);

【讨论】:

  • 好吧,我已将您建议的时间戳添加到added,它显示了一个数字。我正在尝试获取您还写的currentTime,但是控制台记录我为firebase TIMESTAMP 制作的currentTime 变量会打印出这个:{.sv: "timestamp"}??
  • 因此我无法将 added 值与 currentTime 进行比较 :(
  • 我明白你在说什么。发生这种情况是因为TIMESTAMP 在数据库中保存为地图。查看this answer。虽然它是在java中,但你仍然可以理解并将逻辑应用到javascript中。
  • 多亏了你,我才弄明白!非常感谢您的好心先生!
  • 哈哈,我很高兴能帮上忙!
猜你喜欢
  • 2021-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-25
  • 1970-01-01
  • 2022-07-20
  • 1970-01-01
相关资源
最近更新 更多