【问题标题】:Firebase Real Time DB - DatabaseReference.push().getKey() is a TimeStampFirebase 实时数据库 - DatabaseReference.push().getKey() 是一个时间戳
【发布时间】:2022-01-06 05:06:00
【问题描述】:

根据Documentation,下面的代码可以在实时数据库中使用push()设置时间戳作为节点的键。

public void uploadToDB(String s) {
databaseReference.push().setValue(s);
}

返回的key在我的push()下面,例如: a)-mpfcu14jtikek28d3cb. b)-mpfcxv_nzv3yj87mfzh

我的问题是:

  1. 它们是时间戳吗?
  2. 如果可以,我可以将其解码回可读的时间戳吗?

【问题讨论】:

    标签: java android firebase firebase-realtime-database google-cloud-platform


    【解决方案1】:
    1. 它们是时间戳吗?

    不,那些推送的 ID 不是时间戳。但是,它包含一个时间组件。

    正如 Michael Lehenbauer 在 blog article 中提到的:

    推送 ID 是在客户端生成的字符串标识符。它们是时间戳和一些随机位的组合。时间戳确保它们按时间顺序排列,随机位确保每个 ID 都是唯一的,即使有数千人同时创建推送 ID。

    并回答第二个问题:

    1. 如果是,我可以将其解码回可读的时间戳吗?

    如果你逆向工程,可能是的。请检查以下答案:

    但不会指望这一点。要根据时间组件进行排序,则应添加“时间戳”类型的属性,如我在以下帖子中的回答中所述:

    【讨论】:

    • 感谢您的快速回答
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 2020-07-24
    • 2021-12-15
    • 2021-11-27
    • 2019-12-20
    • 1970-01-01
    • 2019-08-09
    相关资源
    最近更新 更多