【问题标题】:Sort Firebase data by date按日期对 Firebase 数据进行排序
【发布时间】:2016-12-30 07:29:58
【问题描述】:

我不断收到此错误,但我无法调试:

无法将“FIRDatabaseQuery”(0x10b32b700) 类型的值转换为“FIRDatabaseReference”(0x10b32b520)。

该错误来自常规 .swift 文件,其中包含:

import Foundation
import Firebase
import FirebaseDatabase

let DB_BASE = FIRDatabase.database().reference()

class DataService {

    static let ds = DataService()

    private var _REF_BASE = DB_BASE
    private var _REF_INCOMES = DB_BASE.child("incomes").queryOrdered(byChild: "date")
    private var _REF_USERS = DB_BASE.child("users")

    var REF_BASE: FIRDatabaseReference {
        return _REF_BASE
    }

    var REF_INCOMES: FIRDatabaseReference {
        return _REF_INCOMES as! FIRDatabaseReference // Thread 1: signal SIGABRT
    }

    [...]
}

在添加 .queryOrdered(byChild: "date") 和 as! FIRDatabaseReference 之前,一切正常,只是我无法按日期排序。

class IncomeFeedVC: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet weak var tableView: UITableView!

    var incomes = [Income]()

    override func viewDidLoad() {
        super.viewDidLoad()

        tableView.delegate = self
        tableView.dataSource = self

        DataService.ds.REF_INCOMES.observe(.value, with: { (snapshot) in

            if let snapshot = snapshot.children.allObjects as? [FIRDataSnapshot] {
                for snap in snapshot {
                    if let incomeDict = snap.value as? Dictionary<String, AnyObject> {
                        let key = snap.key
                        let income = Income(incomeId: key, incomeData: incomeDict)
                        self.incomes.append(income)
                    }
                }
            }
            self.tableView.reloadData()
        })
    }

   [...]

}

我在追求什么?首先,我需要对日期进行排序,然后朝着我的 Sketch 视图工作:

你如何排序?我看到很少有教程使用CoreData。我正在使用 Firebase。

【问题讨论】:

    标签: ios swift firebase firebase-realtime-database


    【解决方案1】:

    你的private var _REF_INCOMES 是FIRDatabaseQuery 不是FIRDatabaseReference ..

    var REF_INCOMES: FIRDatabaseQuery {
        return _REF_INCOMES
    }
    

    请检查此Q&A 以对您的数组进行排序

    【讨论】:

    猜你喜欢
    • 2012-06-26
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 2018-06-26
    • 2020-10-30
    • 1970-01-01
    • 2011-09-08
    相关资源
    最近更新 更多