2017-04-22 30 views
0

我正在嘗試爲帖子製作一個過濾器,用戶可以在其中選擇要查看的城市或地區的帖子。還有三種不同類別的帖子。 (cat_a,cat_b,cat_c)。android)爲firebase製作一個簡單的過濾器查詢,但不起作用

switch(category):{ 
     case 0: 
      // if category == 0, show all POST 
      mQuery = db.getReference("post"); 
      break; 
     case 1: 
      mQuery = db.getReference("post").orderByChild("category").equalTo("cat_a"); 
      break; 
     case 2: 
      if (cityPref == 0){ 
       mQuery = db.getReference("post").orderByChild("category").equalTo("cat_b"); 
      } else { 
       mQuery = db.getReference("post").orderByChild("categoryCity").equalTo("cat_b" + cityString); 
      } 
      break; 
     case 3: 
      if (cityPref == 0){ 
       mQuery = db.getReference("post").orderByChild("category").equalTo("cat_c"); 
      } else if (districtPref == 0){ 
       mQuery = db.getReference("post").orderByChild("categoryCity").equalTo("cat_c" + cityString); 
      } else { 
       mQuery = db.getReference("post").orderByChild("categoryDistrict").equalTo("cat_c" 
         + district); 
      } 
      break; 
     default: 
      mQuery = db.getReference("post"); 
     } 

有趣的是,這並不是說所有查詢都沒有工作,但每個職位的類別,更具體的查詢和所有崗位的工作。以下查詢工作正常。

mQuery = db.getReference("post"); 
mQuery = db.getReference("post").orderByChild("categoryCity").equalTo("cat_b_" + cityString); 
mQuery = db.getReference("post").orderByChild("categoryDistrict").equalTo("cat_c_"+ city + "_" + district); 

,我查詢中使用「類別」的所有職位是行不通的......,我100%肯定FirebaseDatabase在數據中的「類別」。此外,我試圖把Log.v檢查switch語句中是否所有的地方以及是否達到了語句。我非常感謝任何幫助!

僅供參考,這是來自Firebase的我的數據結構。

"post": { 
    "post_uid_1": { 
     "category": "cat_a", 
     "categoryCity": "cat_a_seoul", 
     "categoryDistrict": "cat_a_seoul_songpa", 
     "city": "seoul", 
     "context": "this is context", 
     "district": "songpa", 
     . 
     . 
     . 
     } 
    "post_uid_2": { 
     . 
     . 
     . 
     } 
    } 

}

回答