首页 > 解决方案 > Swift 4:使用 Firestore 对数据进行排序

问题描述

我正在尝试挑选当天观看次数最多的 3 餐。使用此代码我得到不正确的详细信息。所以我的结构是这样的:

- meals 
   -- e.g Kebab
     --- view_count
     --- order_count
     --- like_count

我的代码:

let mealsRef = db.collection("meals").order(by: "view_count").limit(to: 3)

    // [START order_and_limit]
        mealsRef.getDocuments { (snap, err) in
            let dcs = snap!.documents
            for i in dcs {
                var data = i.data()
                print("meal => \(data["meal"] ?? ""), view_count => \(data["view_count"] ?? "")")
            }
    }

对于测试建议,我在 Firebase 控制台上将 view_count 增加了 300 - 200 - 100。但它返回三个但不正确的。

谢谢你们

金,

标签: swiftfirebasegoogle-cloud-firestore

解决方案


Firestore 的默认顺序是升序。所以你得到了 view_count 最少的 3 顿饭。尝试使用降序选项的 order 方法:

func order(by field: String, descending: Bool) -> Query

推荐阅读