我正在使用push将数据添加到某个位置的列表中,我需要分析每个项目被推送时的列表。
我是否必须在插入的对象中存储时间戳才能进行基于时间的查询?例如:获取时间x和时间之间的所有项目
我想确保我做得对,因为Firebase已经使用时间戳来保证每个推送项目的唯一键
{
data:"Data to be stored",
timestamp: /* time at which the data was pushed, is this important to do time-based query? */
}
答案 0 :(得分:2)
如果要查询时间戳,确实应该存储时间戳。虽然技术上可以extract the timestamp from Firebase's push ids,但你不应该依赖这样做。
请注意,您还可以选择要存储的值。当服务器存储数据时(使用Date.now()
),当用户发送数据(使用JavaScript Firebase.ServerValue.TIMESTAMP
)或时,是否要存储?这些值之间总会有一些差异。但是当用户失去网络连接时,差异可能会变得很大。您可以自行决定用例所需的逻辑。