在我的Firestore数据库中,我的字段索引为no,数据类型为字符串,但他的数据为1、2、3等数字。
collectionReference
.orderBy("indexNo", Query.Direction.DESCENDING)
输出正常,直到9点为止,例如9、10、11、12、11、10、11、12、2、3等。
请指导我解决此问题,因为这些数字将决定回收站视图中卡片视图项目的排列。
谢谢...
答案 0 :(得分:0)
由于数据类型为字符串,因此顺序为字典顺序。将数字视为字母。 0 = A,1 = B,2 = C ...比较9和10时,应将其视为比较单词“ I”和“ BA”。在字典中,您希望哪个会首先出现?
答案 1 :(得分:0)
如果您的indexNo
属性的数据类型为String类型,并且您想使用Query.Direction.DESCENDING
来排序结果,则该结果将不会被删除,因为当您订购字符串时,结果按按字典顺序排序。有两种方法可以解决此问题。第一个方法是将属性的数据类型从String更改为 number ,这是我个人推荐的方法。
这是数字的正常顺序:
这是字符串的正常顺序:
第二种方法是修改数据以获得所需的行为。对于数字,您可以通过用零填充数字来实现,如下面的示例所示:
答案 2 :(得分:0)
更好地将数据类型从字符串更改为整数。我做的。 谢谢你的支持。