按时间获取自动ID

时间:2017-08-27 19:27:44

标签: firebase firebase-realtime-database

在我的应用中,我使用Firebase的childByAutoId()(swift)或.push()(web)以下列格式插入一些数据:

- events
   - $autoId
      - time:
      - name:
   - $autoId
      - time:
      - name:

$autoId是Firebase随机生成的密钥。 time是推送数据的纪元时间。

我想允许用户修改每个插入的条目time。但是,我希望将events下的节点按其密钥和时间排序,Firebase在您使用.push()时自然会按时间排序。但是,如果他们修改time以使其实际上应该采用不同的顺序,则条目将无法正确排序。

是否有办法通过修改后的time生成ID,以便如果将其插入events,它的顺序是否正确?这样我就可以删除旧条目并插入新条目,只需复制数据。

1 个答案:

答案 0 :(得分:-1)

由于Firebase的推送ID算法已有详细记录,因此您可以轻松修改该功能,以根据特定时间戳生成它们。

但是我建议将必要的值保留为每个子节点的命名属性。如果您需要能够按创建时间和修改时间进行排序,请保留两个单独的属性。这样您就不必依赖推送ID的行为,而是使用更明确命名的属性来完成您的需要。