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 colorfrom 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 database key 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]
       }
      }
     }
    }
    ..
    

Log in to reply