2017-04-22 2 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); 

내가 "카테고리"를 사용하여 쿼리 할 모든 게시물 그냥 일을하고 나는 FirebaseDatabase 데이터의 "카테고리"을 가지고 있다고 100 % 확신하지 않습니다. 또한 switch 문 안의 모든 위치와 if 문에 도달했는지 확인하기 위해 Log.v를 넣으려고했습니다. 나는 정말 어떤 도움을 주셔서 감사합니다!

참조 용으로, 이것은 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": { 
     . 
     . 
     . 
     } 
    } 

}

답변

관련 문제