FirestoreRecyclerAdapter什么都不显示 [英] FirestoreRecyclerAdapter shows Nothing
问题描述
我正在使用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屋!