나는 게시물에 대한 필터를 만들려고합니다. 사용자가보고 싶은 도시 또는 지구의 게시물을 선택할 수 있습니다. 또한 게시물의 세 가지 카테고리가 있습니다. (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": {
.
.
.
}
}
}