用于未来过去事件的推送方法

Push method for future past events

本文关键字:方法 事件 未来 过去 过去事 用于      更新时间:2023-09-26

我想在过去或将来设置具有时间戳优先级的数据,但不是在当前日期。然后能够使用endAt和StartAt查询特定日期(365天)

推送方法非常适合为数据设置唯一ID并管理订单。有没有任何方法可以在过去或将来为时间戳生成类似push()的"唯一PushId"方法?

您可以尝试创建与push类似的唯一id,但当Firebase中有内置工具来订购数据时,这似乎是一项艰巨的工作,收效甚微。最简单的答案是使用服务器时间戳为每条记录设置优先级。

ref.push({ ...data..., ".priority": Firebase.ServerValue.TIMESTAMP });

要在将来或过去设置时间戳,请手动指定时间戳。

ref.push({ ...data..., ".priority": timeInTheFuture });

.info/serverTimeOffset在这里也可能有助于处理延迟。

要创建推送ID,您可以执行类似于以下操作:

  1. 获取当前时间戳并将其填充为固定长度(即16个字符)
  2. 附加一系列随机数字,如随机数或散列,也填充到固定长度
  3. 您的条目现在看起来如下:000128198239:KHFDBWYBEFIWFE
  4. 现在,您有了一个基于时间戳的可按字典排序的id,它是唯一的

这里有一个关于按字典顺序排列数字的有用讨论