繁体   English   中英

Firebase-检查uid子值在Posts节点中是否匹配,如果是,则将所有得分值加在一起并存储在String变量中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM