FirestoreRecyclerAdapter什么都不显示 [英] FirestoreRecyclerAdapter shows Nothing

查看:43
本文介绍了FirestoreRecyclerAdapter什么都不显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用FirestoreRecyclerAdapter并遇到问题.我阅读了Firestore数据库文档并将其检索到recyclerview,但是由于某种原因,它什么也没有显示.我不知道为什么谁能帮我?如果有人能帮助我,我将非常感激.预先谢谢!!

I am using FirestoreRecyclerAdapter and faced with the problems. I read Firestore database documents and retrieve them to the recyclerview but for some reason, does not show anything. I don't know why. Can anyone help me? I would really thankful if anyone could help me. Thank you in advance!.

这是适配器;

public MyFriendsAdapter(@NonNull FirestoreRecyclerOptions<ProfileModelClass> options) {
    super(options);
}

@Override
protected void onBindViewHolder(@NonNull MyFriendsViewholder holder, int position, @NonNull ProfileModelClass model)
{
    holder.myNickname.setText(model.getNickname());
    holder.myAge.setText(model.getAge());
    holder.myGender.setText(model.getGender());
    holder.myDistance.setText(model.getDistance());
    holder.myUserDescription.setText(model.getUserDescription());
    holder.myMarriage.setText(model.getMarriage());
    holder.myAddress.setText(model.getAddress());

    //  String visit_user_id = getSnapshots().getSnapshot(position).getId();

    //  Intent chatIntent = new Intent(MainActivity.this, ChatActivity.class);
    //  chatIntent.putExtra("visit_user_id", visit_user_id);
    //  startActivity(chatIntent);

    Glide.with(holder.myProfileImageView.getContext()).load(model.getProfileImage()).placeholder(R.drawable.profile).into(holder.myProfileImageView);
    Glide.with(holder.myPictureOne.getContext()).load(model.getPictureOne()).placeholder(R.drawable.select_image).into(holder.myPictureOne);
    Glide.with(holder.myPictureTwo.getContext()).load(model.getPictureTwo()).placeholder(R.drawable.select_image).into(holder.myPictureTwo);

  /*  holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view)
        {
            String visit_user_id = getRef(position).getKey();

            Intent profileIntent = new Intent(FindFriendsActivity.this, ProfileActivity.class);
            profileIntent.putExtra("visit_user_id", visit_user_id);
            startActivity(profileIntent);
        }
    }); */

}



@NonNull
@Override
public MyFriendsViewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
{
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.all_friends_list_layout,
            parent, false);
    return new MyFriendsViewholder(view);
}

class MyFriendsViewholder extends RecyclerView.ViewHolder
{
    CircleImageView myProfileImageView;
    TextView myNickname,myAge, myGender, myDistance, myUserDescription, myMarriage, myAddress,
            myFriendsProfile, SendMessageButton;
    ImageView myPictureOne, myPictureTwo;

    public MyFriendsViewholder(@NonNull View itemView)
    {
        super(itemView);

        myProfileImageView = itemView.findViewById(R.id.all_friends_profile_image_layout);
        myNickname = itemView.findViewById(R.id.all_friends_nickname_layout);
        myGender = itemView.findViewById(R.id.all_friends_gender_layout);
        myAge = itemView.findViewById(R.id.all_friends_age_layout);
        myDistance = itemView.findViewById(R.id.all_friends_distance_layout);
        myUserDescription = itemView.findViewById(R.id.all_friends_description_layout);
        myMarriage = itemView.findViewById(R.id.all_friends_marriage_layout);
        myAddress = itemView.findViewById(R.id.all_friends_address_layout);
        myPictureOne = itemView.findViewById(R.id.all_friends_post_image_first);
        myPictureTwo = itemView.findViewById(R.id.all_friends_post_image_second);

        myFriendsProfile = itemView.findViewById(R.id.all_friends_information_layout);
        SendMessageButton = itemView.findViewById(R.id.all_friends_call_layout);

        myFriendsProfile.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v)
            {
                Intent profileIntent = new Intent(v.getContext(), ProfileActivity.class);
                profileIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                v.getContext().startActivity(profileIntent);

            }
        });

        SendMessageButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent messageIntent = new Intent(v.getContext(), ChatActivity.class);
                messageIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                v.getContext().startActivity(messageIntent);
            }
        });

这是AllConditionFriendsActivity;

This is AllConditionFriendsActivity;

protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_all_condition_friends);

    mToolbar = (Toolbar) findViewById(R.id.all_condition_age_salary_appbar_layout);
    setSupportActionBar(mToolbar);
    getSupportActionBar().setTitle("친구찾기");
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    mAgeSalaryRecyclerList= (RecyclerView) findViewById(R.id.all_condition_age_salary_list);

    mAuth = FirebaseAuth.getInstance();
    currentUserID = mAuth.getCurrentUser().getUid();

    queryFirstAgeSalaryFriends();
}

private void queryFirstAgeSalaryFriends()
{
    firstAgeSalaryColRef
            .get()
            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task)
                {
                    if (task.isSuccessful())
                    {
                        for (DocumentSnapshot documentSnapshot : task.getResult())
                        {
                            if ( documentSnapshot.exists())
                            {
                                String age = documentSnapshot.getString("age");
                                String salary = documentSnapshot.getString("salary");
                                String gender = documentSnapshot.getString("gender");

                                if (gender == "남자(//man)" && age == "19살(//age19)" && salary == "대학(원)생(//graduate student)")
                                {
                                    showManFirstAgeSalaryFriendsList();
                                }
                                else if (gender == "여자(//woman)" && age == "19살(//age19)" && salary == "대학(원)생(//graduate student)")
                                {
                                    showWomanFirstAgeSalaryFriendsList();
                                }
                            }
                        }
                    }
                    else
                    {

                    }
                }
            });
}

private void showWomanFirstAgeSalaryFriendsList()
{
    Query womanSalaryQuery = db.collection("usersProfiles")
            .whereEqualTo("gender", "남자(//man)")
            .whereEqualTo("age", "19살(//age19)")
            .whereEqualTo("salary", "대학(원)생(//graduate student)");
    FirestoreRecyclerOptions<ProfileModelClass> options = new FirestoreRecyclerOptions.Builder<ProfileModelClass>()
            .setQuery(womanSalaryQuery, ProfileModelClass.class)
            .build();
    adapter = new MyFriendsAdapter(options);

    mAgeSalaryRecyclerList.setHasFixedSize(true);
    mAgeSalaryRecyclerList.setLayoutManager(new LinearLayoutManager(this));
    adapter.startListening();
    mAgeSalaryRecyclerList.setAdapter(adapter);

}

@Override
protected void onStop() {
    super.onStop();
    adapter.stopListening();
}

private void showManFirstAgeSalaryFriendsList()
{
    Query manSalaryQuery = db.collection("usersProfiles")
            .whereEqualTo("gender", "여자(//woman)")
            .whereEqualTo("age", "19살(//age19)")
            .whereEqualTo("salary", "대학(원)생(//graduate student)");
    FirestoreRecyclerOptions<ProfileModelClass> options = new FirestoreRecyclerOptions.Builder<ProfileModelClass>()
            .setQuery(manSalaryQuery, ProfileModelClass.class)
            .build();
    adapter = new MyFriendsAdapter(options);

    mAgeSalaryRecyclerList.setHasFixedSize(true);
    mAgeSalaryRecyclerList.setLayoutManager(new LinearLayoutManager(this));
    adapter.startListening();
    mAgeSalaryRecyclerList.setAdapter(adapter);
    

这是Model类;

     private String address, age, marriage, gender, nickname, profileImage, userDescription, pictureOne, pictureTwo, distance;

    public ProfileModelClass() {
    }

    public ProfileModelClass(String address, String age, String marriage, String gender, String nickname, String profileImage, String userDescription, String pictureOne, String pictureTwo, String distance) {
        this.address = address;
        this.age = age;
        this.marriage = marriage;
        this.gender = gender;
        this.nickname = nickname;
        this.profileImage = profileImage;
        this.userDescription = userDescription;
        this.pictureOne = pictureOne;
        this.pictureTwo = pictureTwo;
        this.distance = distance;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getMarriage() {
        return marriage;
    }

    public void setMarriage(String marriage) {
        this.marriage = marriage;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public String getProfileImage() {
        return profileImage;
    }

    public void setProfileImage(String profileImage) {
        this.profileImage = profileImage;
    }

    public String getUserDescription() {
        return userDescription;
    }

    public void setUserDescription(String userDescription) {
        this.userDescription = userDescription;
    }

    public String getPictureOne() {
        return pictureOne;
    }

    public void setPictureOne(String pictureOne) {
        this.pictureOne = pictureOne;
    }

    public String getPictureTwo() {
        return pictureTwo;
    }

    public void setPictureTwo(String pictureTwo) {
        this.pictureTwo = pictureTwo;
    }

    public String getDistance() {
        return distance;
    }

    public void setDistance(String distance) {
        this.distance = distance;
    }
}

Firestore数据库;

Firestore DB;

推荐答案

您的代码正在查询:

db.collection("usersProfiles")

但是在您的屏幕截图中,该集合被命名为 GenderAgeSalary .如果确实是您要查询和显示的集合,则应为:

But in your screenshot, the collection is named GenderAgeSalary. If that is indeed the collection you want to query and show, it should be:

db.collection("GenderAgeSalary")...

这篇关于FirestoreRecyclerAdapter什么都不显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆