按日期对 Firebase 数据进行排序
Posted
技术标签:
【中文标题】按日期对 Firebase 数据进行排序【英文标题】:Sort Firebase data by date 【发布时间】: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。
【问题讨论】:
【参考方案1】:你的private var _REF_INCOMES
是FIRDatabaseQuery
不是FIRDatabaseReference
..
var REF_INCOMES: FIRDatabaseQuery
return _REF_INCOMES
请检查此Q&A 以对您的数组进行排序
【讨论】:
哈!从来没有见过。谢谢。如何获得升/降? 是的等等...我会把链接发给你***.com/questions/37144030/… 用self.incomes.reverse()
找到它,就在附加之后:***.com/questions/36314374/…以上是关于按日期对 Firebase 数据进行排序的主要内容,如果未能解决你的问题,请参考以下文章
Firebase + Swift TableView 按日期排序
Firebase 按降序对数据进行排序。 (只排序了一半。)
我们如何使用 Angular 按 TimeStamp 数据类型对 Firebase Firestore 数据进行排序?