Hỏi về query trong firebase
-
Bác nào sử dụng firebase cho hỏi chút. Làm sao để query với nhiều điều kiện filter nhỉ
-
cách của mình thì child về rồi if else các kiểu ak :))
-
Bạn thử ví dụ cái if else giúp mình với
-
Bạn thử viết mô tả cái data của bạn rồi filter sao, vậy mình dễ ví dụ hơn à. :))
-
//users.json users = { user_id1: { name: 'Banana', from: 'Fruit', color: 'Yellow' }, user_id2: { name: 'Lemon', from: 'Fruit', color: 'Yellow' }, user_id3: { name: 'Carrot', from: 'Veggie', color: 'Yellow' } }
C1: Kiểu server half - client half, tìm theo
color
vàfrom
có thể theo cách sau:// firetest.js var ref = new Firebase("https://my.firebaseio.com/db/users"); ref .orderBy('from') .startAt('Fruit').endAt('Fruit') .on('value', function(snap) { var fruit = snap.val(); if (fruit.color == 'Yellow') { console.log(fruit); //=> Banana, Lemon } });
C2: Kiểu server only, client chỉ nhận kết quả.
Tuy nhiên với các loại databasekey value
để tăng tốc độ truy vấn thì người ta thường tạo ra một key chứa value cố định.//users.json users = { user_id1: { name: 'Banana', from: 'Fruit', color: 'Yellow', color_from: 'Yellow_Fruit' }, user_id2: { name: 'Lemon', from: 'Fruit', color: 'Yellow', color_from: 'Yellow_Fruit' }, user_id3: { name: 'Carrot', from: 'Veggie', color: 'Yellow' , color_from: 'Yellow_Veggie' }, }
Lúc đó chỉ cần post một query lên Server
.... ref .orderBy('color_from') .startAt('Yellow_Fruit').endAt('Yellow_Fruit') ....
C3: tổ chức lại database , thêm một số database tham chiếu
users = {...} .... usersBy = { "by_from": { "Fruit": { "by_color": { "Yellow": [user_id1, user_i2] } }, "Veggie": { "by_color": { "Yellow": [user_i3] } } } } ..