Firebase 按值对类数组进行排序

Posted

技术标签:

【中文标题】Firebase 按值对类数组进行排序【英文标题】:Firebase Sort array of class by value 【发布时间】:2017-04-18 12:32:04 【问题描述】:

我正在使用 Firebase。在我的应用程序中,我通过传入一个 bottleID 来获取一个子值,并从快照中获取该值的详细信息。然后我将详细信息分配给MyCollection_Class 的对象并将其添加到数组中。在获得每个瓶子值之后,我想在重新加载表格视图之前使用 created_at 标记对该数组进行排序。请告诉我如何按特定实例变量对对象数组进行排序。

let Collection = MyCollection_Class()
FireBaseConstants.AUCTIONS_REF.child(bottleID).observeSingleEvent(of: .value, with:  (snap) in
    if !(snap.value is NSNull) 
        Collection.id = bottle_dict["id"] as? String
        Collection.item_number = bottle_dict["item_number"] as? Int
        Collection.created_at = bottle_dict["created_at"] as? String
        if !(self.MyCollectionsIDArr.contains(Collection.id! as String)) 
             self.MyCollectionsArr.append(Collection)
             self.MyCollectionsIDArr.append(Collection.id!)
             // I want to sort the MyCollectionsArr using created_at here
             self.tbl_Latest.reloadData()
        
    
)

【问题讨论】:

能否显示created_at的样本值,因为它是String类型,所以需要显示日期的格式 Swift how to sort array of custom objects by property value的可能重复 【参考方案1】:

您可以使用

检索已从 Firebase 排序的数据

queryOrderedByChild。

一个例子是:

ref.child(bottleID).queryOrderedByChild("created_at").queryEqualToValue(0).observe  SingleEventOfType(.Value, withBlock:  snap in
    print("snap \(snap)")
    expectation.fulfill()
)

【讨论】:

以上是关于Firebase 按值对类数组进行排序的主要内容,如果未能解决你的问题,请参考以下文章

如何按值对数组进行排序(排序)? *有一个转折*

如何按值对多维数组进行排序

您可以按值对包含数字的字符串数组进行排序吗? [复制]

如何在PHP中按值对对象数组进行排序

在 JavaScript 中按值对字典进行排序

如何按值对散列进行排序