您可以从Firebase实时数据库密钥获取时间戳吗?

lowe0292

根据此博客文章,firebase数组键是使用时间戳创建的:

它通过基于当前时间戳(与服务器时间匹配的偏移量)分配一个永久的唯一ID来实现此目的。

给定密钥,是否有办法恢复此时间戳以供以后使用?

弗兰克·范普菲伦

正如我在评论中所说,您不应该依赖于从生成的ID解码时间戳。取而代之的是,您只需将其存储在Firebase中的属性中即可。

也就是说,事实证明,将时间戳取回很容易:

// DO NOT USE THIS CODE IN PRODUCTION AS IT DEPENDS ON AN INTERNAL 
// IMPLEMENTATION DETAIL OF FIREBASE
var PUSH_CHARS = "-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz";
function decode(id) {
  id = id.substring(0,8);
  var timestamp = 0;
  for (var i=0; i < id.length; i++) {
    var c = id.charAt(i);
    timestamp = timestamp * 64 + PUSH_CHARS.indexOf(c);
  }
  return timestamp;
}
var key = prompt("Enter Firebase push ID");
if (key) {
  var timestamp = decode(key);
  console.log(timestamp+"\n"+new Date(timestamp));
  alert(timestamp+"\n"+new Date(timestamp));
}

我会重复我的评论,以防万一有人认为将此代码用于除逆向工程中的练习以外的其他任何用途是一个好主意:

即使您知道如何从密钥中检索时间戳,在生产代码中执行此操作也是一个坏主意。时间戳用于生成唯一的,按时间顺序排列的序列。如果Firebase的某个人想出了一种更有效的方法(无论是他们偶然选择的效率的主观定义),都可以实现的算法push如果您的代码需要时间戳,则应将时间戳添加到数据中。不依赖于它成为密钥的一部分。

更新

Firebase记录了Firebase推送ID背后的算法但是上述建议仍然存在:请勿将其用作存储日期的替代方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

您可以在matplotlib中绘制实时数据吗?

来自分类Dev

您可以从Firebase阵列密钥获取时间戳吗?

来自分类Dev

如何从Firebase实时数据库获取包含唯一密钥的字符串

来自分类Dev

Firebase实时数据库addValueEventListener

来自分类Dev

如何从Firebase中的实时数据库获取数据

来自分类Dev

是否可以在Firebase实时数据库中重命名密钥?

来自分类Dev

Firebase实时数据库密钥生成对在Android / iOS设备上进行时钟更改可靠吗?#AskFirebase

来自分类Dev

首次安装android应用时,如何从Firebase实时数据库获取数据库

来自分类Dev

我如何从Firebase实时数据库中获取属于随机密钥的子级的数据-使用react native?

来自分类Dev

如何从Firebase实时数据库获取最新记录

来自分类Dev

Firebase:将实时数据库时间戳转换为Firestore时间戳的代码/公式?

来自分类Dev

如何消除实时数据库Firebase抖动中的自动生成的密钥

来自分类Dev

在实时数据库中插入记录并获取密钥

来自分类Dev

Firebase实时数据库-规则

来自分类Dev

如何从Xamarin.Forms上的Firebase实时数据库获取ID节点(密钥)

来自分类Dev

Firebase实时数据库:无法通过时间戳订购数据

来自分类Dev

如何获取实时数据库中的特定密钥?

来自分类Dev

Firebase实时数据库addValueEventListener

来自分类Dev

Android:Firebase实时数据库

来自分类Dev

Firebase 实时数据库的问题

来自分类Dev

Android Firebase 实时数据库获取数据太慢

来自分类Dev

Firebase 实时数据库编辑密钥并保留子项

来自分类Dev

Firebase 实时数据库帖子

来自分类Dev

将数据推送到 Firebase 实时数据库时如何更改密钥

来自分类Dev

无法使用 FIrebase 实时数据库通过他的电子邮件检索好友密钥

来自分类Dev

Firebase 实时数据库,从键值对中获取数据

来自分类Dev

如何获取firebase实时数据库的数据

来自分类Dev

您可以控制 firebase 实时数据库安全规则中的各个属性吗?

来自分类Dev

无法从 Firebase 实时数据库获取数据

Related 相关文章

  1. 1

    您可以在matplotlib中绘制实时数据吗?

  2. 2

    您可以从Firebase阵列密钥获取时间戳吗?

  3. 3

    如何从Firebase实时数据库获取包含唯一密钥的字符串

  4. 4

    Firebase实时数据库addValueEventListener

  5. 5

    如何从Firebase中的实时数据库获取数据

  6. 6

    是否可以在Firebase实时数据库中重命名密钥?

  7. 7

    Firebase实时数据库密钥生成对在Android / iOS设备上进行时钟更改可靠吗?#AskFirebase

  8. 8

    首次安装android应用时,如何从Firebase实时数据库获取数据库

  9. 9

    我如何从Firebase实时数据库中获取属于随机密钥的子级的数据-使用react native?

  10. 10

    如何从Firebase实时数据库获取最新记录

  11. 11

    Firebase:将实时数据库时间戳转换为Firestore时间戳的代码/公式?

  12. 12

    如何消除实时数据库Firebase抖动中的自动生成的密钥

  13. 13

    在实时数据库中插入记录并获取密钥

  14. 14

    Firebase实时数据库-规则

  15. 15

    如何从Xamarin.Forms上的Firebase实时数据库获取ID节点(密钥)

  16. 16

    Firebase实时数据库:无法通过时间戳订购数据

  17. 17

    如何获取实时数据库中的特定密钥?

  18. 18

    Firebase实时数据库addValueEventListener

  19. 19

    Android:Firebase实时数据库

  20. 20

    Firebase 实时数据库的问题

  21. 21

    Android Firebase 实时数据库获取数据太慢

  22. 22

    Firebase 实时数据库编辑密钥并保留子项

  23. 23

    Firebase 实时数据库帖子

  24. 24

    将数据推送到 Firebase 实时数据库时如何更改密钥

  25. 25

    无法使用 FIrebase 实时数据库通过他的电子邮件检索好友密钥

  26. 26

    Firebase 实时数据库,从键值对中获取数据

  27. 27

    如何获取firebase实时数据库的数据

  28. 28

    您可以控制 firebase 实时数据库安全规则中的各个属性吗?

  29. 29

    无法从 Firebase 实时数据库获取数据

热门标签

归档