Firebase 按时间获取自动Id
在我的应用程序中,我使用Firebase的Firebase 按时间获取自动Id,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,在我的应用程序中,我使用Firebase的childByAutoId()(swift)或.push()(web)以以下格式插入一些数据: - events - $autoId - time: - name: - $autoId - time: - name: 其中,$autoId是Firebase随机生成的密钥time是推送数据时的历元时间 我想允许用户修改每个插入条目的时间。但是,我想让events下的节点按照它们的键和时间进行排序
childByAutoId()
(swift)或.push()
(web)以以下格式插入一些数据:
- events
- $autoId
- time:
- name:
- $autoId
- time:
- name:
其中,$autoId
是Firebase随机生成的密钥time
是推送数据时的历元时间
我想允许用户修改每个插入条目的时间
。但是,我想让events
下的节点按照它们的键和时间进行排序,Firebase在使用.push()时自然会这样做。但是如果他们修改了时间
,使其实际顺序不同,则条目将无法正确排序
是否有一种方法可以通过修改的时间
生成id,这样如果将其插入事件
中,它的顺序就正确了?这样,我就可以在复制数据的同时删除旧条目并插入新条目。因为Firebase推送ID的算法有很好的文档记录,所以您可以很容易地修改函数以根据特定的时间戳生成它们
但是我建议保留必要的值作为每个子节点的命名属性。如果需要能够按创建和修改时间进行排序,请保留两个单独的属性。这样,您就不必依赖推送ID的行为,而是使用更显式命名的属性来完成所需的操作