如何从Firebase读取并在等级栏中显示

问题描述 投票:1回答:2

我有一个等级栏,该等级栏应根据登录的用户显示单个用户的等级平均值。用户可以通过写入等级节点下的数据库来对另一个用户进行等级评估,如下所示this is the view of the database under ratings

已被评级的用户位于节点“被评级”下。请注意,“-LxW7A ......”是随机生成的密钥。要查看用户的评分(如果他被多次评分),我使用下面的代码获取评分的总和,然后除以该用户获得评分的总次数即可得出平均值

FirebaseUser user=mAuth.getCurrentUser();
String userId=user.getUid();
  DatabaseReference refund = 
  FirebaseDatabase.getInstance().getReference("ratings");
Query query=refund.orderByChild("ratee").equalTo(userID);


final RatingBar ratingBar=(RatingBar)findViewById(R.id.ratingBar) ;
  query.addValueEventListener(new ValueEventListener() {
int count=0;
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
     String rating=dataSnapshot.child("rater").getValue(String.class);
    if (rating==null){Toast.makeText(getApplicationContext(),"empty ",Toast.LENGTH_SHORT).show();}else{
        count=count+Integer.valueOf(rating);
        double a = dataSnapshot.child("kutaPoints").getValue(double.class);
        totalpointsused =+ a;
        double tots=(double)count;
        double result=totalpointsused/tots;
        float abc=(float)result;
        Toast.makeText(getApplicationContext(),""+abc,Toast.LENGTH_SHORT).show();

        ratingBar.setRating(abc);
    }}

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

}
});

但是,上面的代码不起作用,并且等级栏中未显示任何内容,并且吐司为空。

java android firebase firebase-realtime-database ratingbar
2个回答
2
投票
使用以下查询时:

0
投票
您的应用是否已与Firebase连接
© www.soinside.com 2019 - 2024. All rights reserved.