我正在使用 FirestoreRecyclerAdapter 并遇到了问题。 我阅读了 Firestore 数据库文档并将它们检索到 recyclerview,但由于某种原因,没有显示任何内容。我不知道为什么。谁能帮我?如果有人能帮助我,我真的很感激。 提前致谢!
这是适配器;
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;
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);
这是模型类;
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 数据库;
答案 0 :(得分:0)
您的代码正在查询:
db.collection("usersProfiles")
但在您的屏幕截图中,该集合名为 GenderAgeSalary
。如果这确实是您要查询和显示的集合,则应该是:
db.collection("GenderAgeSalary")...