如何通过 Desc SwiftUI 对 Cloud Firestore 数据进行排序

Posted

技术标签:

【中文标题】如何通过 Desc SwiftUI 对 Cloud Firestore 数据进行排序【英文标题】:How to Cloud Firestore Data Sort by Desc SwiftUI 【发布时间】:2021-03-23 07:16:40 【问题描述】:

我正在尝试从我的Firestore 集合中获取数据,现在我要做的是按“dateCode”字段之一对文档进行排序 附加代码如下:

func getDescOrderData(completion: @escaping ([String:Any]) -> Void) 
    var dictInfo = [String:Any]()
    Firestore..collection("OldData").order(by: "dateCode", descending: true)
        .whereField("dateCode", isLessThanOrEqualTo: “Mon”)
        .whereField("studentId", isEqualTo: self.studentId)
        .getDocuments  (querySnapshot, error) in
            if let error = error 
                print("Old History Data error: \(error.localizedDescription)")
                return
            
            if let snapshot = querySnapshot 
                for document in snapshot.documents 
                        dictInfo.append(document.data())
                
                completion(dictInfo)
            
        

但我收到以下错误:-

Old History Data error:查询需要索引。你可以在这里创建它:https://console.firebase.googl........

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

代码正在尝试使用需要所谓的Composite Index 的查询。实际上根据the documentation应该可以通过错误消息中的链接:

如果您尝试使用不映射的范围子句进行复合查询 到现有索引,您会收到错误。错误信息包括 在 Firebase 控制台中创建缺失索引的直接链接。

只需在浏览器中打开它并创建索引。就这样! :)

【讨论】:

以上是关于如何通过 Desc SwiftUI 对 Cloud Firestore 数据进行排序的主要内容,如果未能解决你的问题,请参考以下文章

Bitbucket REST Api:如何通过调用 rest api 按日期 desc 对所有分支进行排序?

无法在 SwiftUI 按钮视图中从 Cloud Firestore 获取数据

如何通过 Cloud Functions 将文件上传到 Cloud Storage 并使用 Firestore 控制对 Cloud Storage 的访问?

使用 SwiftUI 从 Cloud Firestore 中的集合“配置文件”中获取数据。无法将类型“[String:Any]”的值分配给类型“UserProfile”

如何对包含子句“order by”、“desc”和“Limit”的多个列使用 distinct

如何使用 Fluent API 通过 ASC/DESC 排序在多列上添加索引?