适用于多个用户和食品的Fi​​rebase数据库查询评级

时间:2019-04-23 13:59:34

标签: android firebase-realtime-database

我对于为多个用户和多个针对Foods订单的android应用编写正确的评级查询存在问题。

这是Firebase数据,是json形式:

"Rating" : {
  "1234555" : {
    "14" : {
      "comment" : "KKK",
      "foodId" : "14",
      "rateValue" : "4",
      "userPhone" : "1234555"
    }
  }
}

“ 1234555”是用户ID,“ 14”是FoodId

private void getRatingFood(String foodId) {
   Query foodRating=Ratings.child(foodId).orderByChild("foodId").equalTo(foodId);

    foodRating.addValueEventListener(new ValueEventListener() {
        int count=0,sum=0;
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            for(DataSnapshot postSnapShot:dataSnapshot.getChildren()){
                Rating item=postSnapShot.getValue(Rating.class);
              sum+=Integer.parseInt(item.getRateValue());
              count++;

            }

            if(count!=0){
                float avg=sum/count;
                ratingBar.setRating(avg);
            }
    }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
}

我认为我的Query语句是错误的,因为它无法访问内部属性。

0 个答案:

没有答案