[英]Firebase - check if uid child values match in Posts node,if so then add all score values together and store in String variable
我想检查Posts节点中是否有uid
子值匹配,如果是,那么我想将所有各个score
值加在一起并存储在String变量中。
下面是我的firebase结构
这是我的代码...我想将总分计入字符串变量并在此处设置文本。...“ holder.score.setText(Score);”
private void DisplayAllUserScores() {
//do... TotalPicScore & PostImage
FirebaseRecyclerOptions<Leaderboard> options =
new FirebaseRecyclerOptions.Builder<Leaderboard>()
.setQuery(LikesRef, Leaderboard.class)
.build();
FirebaseRecyclerAdapter<Leaderboard, LeaderboardActivity.ScoresViewHolder> firebaseRecyclerAdapter =
new FirebaseRecyclerAdapter<Leaderboard, LeaderboardActivity.ScoresViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull final LeaderboardActivity.ScoresViewHolder holder, int position, @NonNull final Leaderboard model) {
final String scores_id = getRef(position).getKey();
PostsRef.child(scores_id).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
final String userName = dataSnapshot.child("fullname").getValue().toString();
final String Score = dataSnapshot.child("score").getValue().toString();
final String userprofileimage = dataSnapshot.child("profileimage").getValue().toString();
//GetUserInformation();
holder.leaderboardUsernames.setText(userName);
holder.score.setText(Score);
Picasso.get().load(userprofileimage).placeholder(R.drawable.profile).into(holder.leaderboardProfilepicture);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
@NonNull
@Override
public LeaderboardActivity.ScoresViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.all_users_scores_layout, parent, false);
ScoresViewHolder viewHolder = new ScoresViewHolder(view);
return viewHolder;
}
};
ScoreList.setAdapter(firebaseRecyclerAdapter);
firebaseRecyclerAdapter.startListening();
}
我希望你正在寻找类似的东西
int scoreTotal=0;
Query myTopPostsQuery = databaseReference.child("Posts").orderByChild("uid").equalTo(userId);
myTopPostsQuery.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.getValue()!=null){
for(DataSnapshot snapshot:dataSnapshot.getChildren())
scoreTotal= scoreTotal+ (int) snapshot.child("score").getValue();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.