首页 > 解决方案 > 如何通过字符串字段从 Firestore 排序列表(如何解析为 int)

问题描述

我的颤振应用程序中有一个列表,我想按天对其进行排序,但是在 Firestore 中,我将“天”存储为字符串,并且我不能这样做orderBy("day").. 我怎么能int.parse()在这个领域做一个并制作它对列表进行排序?

await databaseReference
        .collection("events").doc('admin').collection('sodas').doc(year.toString()).collection(month.toString())
        .orderBy("day")

Firestore 中的日期是 30、20、19、28 ......但它的格式是字符串

标签: firebasefluttersortinggoogle-cloud-firestore

解决方案


Firestore 中的字符串值按其字典顺序排序,因此是:

  • “1”
  • “10”
  • “11”
  • “12”
  • ...
  • “18”
  • “19”
  • “2”
  • “20”
  • “21”
  • ...

获得正确结果的两种方法是:

  • 将数字存储为实际数值,以便 Firestore 对它们使用数字排序顺序。

  • 将数字存储为字符串格式,当按字典顺序排列时,可以通过向左填充数字来提供所需的结果。例如,当用 填充时"0"

  • “01”

  • “02”

  • ...

  • “09”

  • “10”

  • “11”

  • “12”

  • “13”

  • ...

  • “18”

  • “19”

  • “20”

  • “21”

  • ...


推荐阅读