Я создаю приложение для продажи билетов, используя базу данных Firebase. Вот мой формат базы данных: Предварительный запрос и фильтрация в Firebase с использованием iOS Swift
, если я пишу такой код:
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;
}
будет показывать все «tanggal» со значением, равным до «17/08/2016», , когда я это делаю ...
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». Мне всегда не удалось это сделать, и ошибка в основном с «multiple orderBy()», мне нужно запросить и фильтровать данные на основе двух или более дочерних значений. В основном я хочу сортировать на основе «harga», фильтр на основе «tanggal», «asal», «tujuan» и minimun number of «tersedia» Пожалуйста, помогите мне, я хочу переключить свой db с SQL на Firebase. Спасибо.
В запросе Firebase может быть только одно предложение 'orderBy'. Иногда вы можете комбинировать значения, которые вы хотите фильтровать/упорядочивать, в одном свойстве, но это зависит от вашего конкретного варианта использования. См. Http://stackoverflow.com/questions/26700924/query-based-on-multiple-where-clauses-in-firebase –