【发布时间】:2016-08-19 20:00:02
【问题描述】:
我正在使用 Firebase 数据库构建票务应用。这是我的数据库格式:
如果我这样写代码:
let ref = FIRDatabase.database().reference()
ref.child("jadwal")
.queryOrderedByChild("tanggal")
.queryEqualToValue("17/08/2016")
.observeEventType(.ChildAdded, withBlock: { (snapshot) in
print(snapshot)
}, withCancelBlock: nil)
输出将是:
Snap (-KPMQefHSuk7j9kb3GTJ) {
asal = BNA;
harga = 177000;
idBus = id;
jam = "20:00";
tanggal = "17/08/2016";
tersedia = 35;
tujuan = BRN;
}
Snap (-KPMQnCGrXY36NEMxSOU) {
asal = BNA;
harga = 150000;
idBus = id;
jam = "20:00";
tanggal = "17/08/2016";
tersedia = 37;
tujuan = MDN;
}
Snap (-KPMQqFmku_XzItElzjV) {
asal = BNA;
harga = 160000;
idBus = id;
jam = "20:00";
tanggal = "17/08/2016";
tersedia = 40;
tujuan = MDN;
}
它将显示所有值等于“17/08/2016”的“tanggal”, 当我这样做时......
let ref = FIRDatabase.database().reference()
ref.child("jadwal")
.queryOrderedByChild("harga")
.observeEventType(.ChildAdded, withBlock: { (snapshot) in
print(snapshot)
}, withCancelBlock: nil)
它将显示从低到高排列的所有“harga”,如下所示:
Snap (-KPNgVeXXnqnzevh5w6u) {
asal = BNA;
harga = 120000;
idBus = id;
jam = "22:30";
tanggal = "30/08/2016";
tersedia = 38;
tujuan = TKG;
}
Snap (-KPMQnCGrXY36NEMxSOU) {
asal = BNA;
harga = 150000;
idBus = id;
jam = "20:00";
tanggal = "17/08/2016";
tersedia = 37;
tujuan = MDN;
}
Snap (-KPMQqFmku_XzItElzjV) {
asal = BNA;
harga = 160000;
idBus = id;
jam = "20:00";
tanggal = "17/08/2016";
tersedia = 40;
tujuan = MDN;
}
Snap (-KPMQefHSuk7j9kb3GTJ) {
asal = BNA;
harga = 177000;
idBus = id;
jam = "20:00";
tanggal = "17/08/2016";
tersedia = 35;
tujuan = BRN;
}
Snap (-KPNgJPRlEuu0FZvjU2J) {
asal = BNA;
harga = 180000;
idBus = id;
jam = "21:30";
tanggal = "25/08/2016";
tersedia = 40;
tujuan = MDN;
}
Snap (-KPNgQ2qQXQpY4eT2Jqd) {
asal = BNA;
harga = 230000;
idBus = id;
jam = "22:30";
tanggal = "30/08/2016";
tersedia = 38;
tujuan = BNJ;
}
查看“harga”是否已排序 但我需要显示快照列表,其中显示“harga”已排序,只有“tanggal”是“17/08/2016”。 我总是无法做到这一点,并且错误主要与“多个 orderBy()”有关,我需要根据两个或多个子值查询和过滤数据。基本上我想根据“harga”进行排序,根据“tanggal”、“asal”、“tujuan”和“tersedia”的最小数量进行过滤 请帮助我,我想将我的数据库从 SQL 切换到 Firebase。谢谢。
【问题讨论】:
-
Firebase 查询中只能有一个
orderBy子句。有时您可以将要过滤/排序的值组合在一个属性中,但这取决于您的确切用例。见stackoverflow.com/questions/26700924/…
标签: ios swift firebase firebase-realtime-database