将时间戳存储为Firebase中的密钥?

时间:2016-12-02 08:32:48

标签: logging firebase time firebase-realtime-database

是否可以将时间戳存储为Firebase数据库中的密钥。

我的实际用例是根据时间戳存储日志。

所以,它是这样的:

logs: {
 user1: {
  "2016-12-02T06:57:31+00:00":"70",
  "2016-12-02T06:57:32+00:00":"21",
  "2016-12-02T06:57:33+00:00":"26"
 },
 user2: {
  "2016-12-02T06:57:31+00:00":"88",
  "2016-12-02T06:57:32+00:00":"36",
  "2016-12-02T06:57:33+00:00":"45"
 }
}

4 个答案:

答案 0 :(得分:2)

您可以,只需使用时间戳作为参考来设置其值

  firebase.database().ref("logs/"+"2016-12-02T06:57:31+00:00").set("70");

答案 1 :(得分:2)

是的,您可以将您喜欢的任何字符串作为数据库中的密钥(我想是达到合理的大小限制)。

对于日期,我建议只存储自纪元以来的秒数(或毫秒)。它将更小,更容易转换为各种其他日期表示。它还会使键按时间顺序排序(与整数排序顺序相同)。请参阅" orderByKey"。您还可以使用startAt()和endAt()来查询日期范围。

但是,如果您更喜欢当前的时间戳格式作为密钥,我认为这不会是一个问题。

答案 2 :(得分:0)

firebase数据库的键是String,然后,您可以将时间戳存储为键。如果您有任何疑问,可以查看此documentation以获取更多信息。

良好的编程!

答案 3 :(得分:0)

是的,您可以根据用户输入信息的速度,为同一个用户提供重复的时间戳。

在这种情况下,我建议使用@FrankvanPuffelen引用的Firebase Push ID's,即:

  

推送ID包含120位信息。前48位是时间戳,它既降低了碰撞的可能性,又允许连续创建的推送ID按时间顺序排序。时间戳之后是72位随机性,这确保即使两个人在完全相同的毫秒内创建推送ID也极不可能生成相同的ID。