Firebase查询排序问题:同高分用户如何按时间戳倒序排列?
解决方法
直接在原查询中添加第二个orderBy条件,指定按timestamp字段降序排列即可。当多个用户的highScore相同时,Firestore会自动使用这一二级排序规则,将最晚获得高分的用户排在前面。
修改后的查询代码如下:
const q = query( collection(db, 'users'), orderBy("highScore", "desc"), orderBy("timestamp", "desc") );
注意事项
- 确保
users集合中的每个文档都包含timestamp字段,推荐存储Firestore原生的Timestamp类型,或Unix时间戳这类可正确排序的时间格式。 - Firestore需要手动创建复合索引来支持多字段排序:首次运行修改后的查询时,控制台会抛出包含索引创建链接的错误,点击链接即可快速完成索引配置。
内容的提问来源于stack exchange,提问作者Jaydendev
相关产品推荐
相关产品推荐

