我理解Firebase实时数据库push()使用当前时间戳自动创建一个唯一的键,以确保时间顺序。我想知道是否有一种方法可以使用以前的时间戳(例如,6个月前)创建密钥,基本上可以获得6个月前使用push()获得的密钥。
我理解firebase push()使用当前时间戳自动创建唯一密钥以确保时间顺序。
是的,你是对的。推送的id包含一个时间组件。正如Michael Lehenbauer在这篇博客文章中提到的:
推送id是客户端生成的字符串标识符。它们是时间戳和一些随机比特的组合。时间戳确保它们按时间顺序排列,随机位确保每个ID是唯一的,即使成千上万的人同时创建推送ID。
回答你的问题:
我想知道是否有办法使用以前的时间戳(例如,6个月前)创建密钥
这目前是不可能的。如果您希望生成您选择的随机ID,其中每个ID都基于前一个ID中存在的时间戳,那么您应该创建自己的机制。
但是,您可以继续使用这些推入的id,但是您可以创建一个时间戳字段,您可以在其中添加您选择的时间戳值。然后你可以对结果进行升序排序(这是默认的)或降序排序,如果你需要的话。
编辑:
看了@RenaudTarnec的建议和@FrankvanPuffelen的解决方案后,原来你可以创建一个"fake"根据实际算法推送ID。