AllUsers类
public class AllUsers {
private String Name;
private String Status;
private String Image;
public AllUsers (){
}
public AllUsers(String name, String status, String Image) {
Name = name;
Status = status;
Image = Image;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getStatus() {
return Status;
}
public void setStatus(String status) {
Status = status;
}
public String getImage() {
return Image;
}
public void setImage(String image) {
Image = image;
}
}
片段
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.fragment_contacts, container, false);
noUsersText = (TextView) rootView.findViewById(R.id.noUsersText);
mUsersList = (RecyclerView) rootView.findViewById(R.id.usersList);
mAuth = FirebaseAuth.getInstance();
currentUser = mAuth.getCurrentUser();
UID = mAuth.getCurrentUser().getUid();
mDatabaseReference = FirebaseDatabase.getInstance().getReference().child("Users");
mProgressDialogue = new ProgressDialog(getActivity());
mProgressDialogue.setMessage("Loading...");
mProgressDialogue.show();
mUsersList.setLayoutManager(new LinearLayoutManager(getActivity()));
FirebaseRecyclerOptions<AllUsers> options =
new FirebaseRecyclerOptions.Builder<AllUsers>()
.setQuery(mDatabaseReference, AllUsers.class)
.build();
firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<AllUsers, UsersViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull UsersViewHolder holder, int position, @NonNull AllUsers model) {
holder.setName(model.getName());
holder.setStatus(model.getStatus());
final String userId = getRef(position).getKey();
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference().child("Users").child(userId).child("Data");
rootRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
userName = dataSnapshot.child("Name").getValue().toString();
Intent intent = new Intent(getActivity(), Chat.class);
intent.putExtra("Recievers_Id", userId);
intent.putExtra("Recievers_Name", userName);
startActivity(intent);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
});
}
@Override
public UsersViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.all_users_layout, parent, false);
return new UsersViewHolder(view);
}
};
mUsersList.setAdapter(firebaseRecyclerAdapter);
return rootView;
}
public static class UsersViewHolder extends RecyclerView.ViewHolder{
View mView;
public UsersViewHolder(View itemView) {
super(itemView);
mView = itemView;
}
public void setName(String name) {
TextView mDisplayName = (TextView) mView.findViewById(R.id.display_name);
mDisplayName.setText(name);
}
public void setStatus(String status) {
TextView mDisplayStatus = (TextView) mView.findViewById(R.id.display_status);
mDisplayStatus.setText(status);
}
}
@Override
public void onStart() {
super.onStart();
firebaseRecyclerAdapter.startListening();
}
@Override
public void onStop() {
super.onStop();
if(firebaseRecyclerAdapter != null) {
firebaseRecyclerAdapter.stopListening();
}
}
数据库结构-https://ibb.co/i70DSy
在我拥有所有数据之前,该数据都在唯一的id子元素内。我只是想使其更具可读性,所以我在唯一ID下添加了一个名为data的子项,并在其中存储了所有数据。但是数据不再显示了。我已经做了很多尝试来弄清楚,甚至没有任何错误显示。它只是显示空白屏幕,如果我单击应该显示数据的屏幕,则单击侦听器正在将我带到下一个活动。
有人可以帮我吗?
数据库
{
"Chat" : {
"VwtdCRK0aXQ2bnKe01fy8mYUPqs2" : {
"VwtdCRK0aXQ2bnKe01fy8mYUPqs2" : {
"Seen" : false,
"Timestamp" : 1529515719074
}
}
},
"Users" : {
"VwtdCRK0aXQ2bnKe01fy8mYUPqs2" : {
"Data" : {
"Image" : "https://firebasestorage.googleapis.com/v0/b/messageplus-cd647.appspot.com/o/Raw%2FVwtdCRK0aXQ2bnKe01fy8mYUPqs2.jpg?alt=media&token=a385e502-1068-4efc-a2d8-bd9037201b5f",
"Name" : "Akash R",
"Phone_Number" : "8105571584",
"Status" : "None of your business",
"Thumb_image" : "Default",
"Unique" : "VwtdCRK0aXQ2bnKe01fy8mYUPqs2"
},
"Quiz" : {
"Question1" : {
"Answer" : "fd",
"Option1" : "123",
"Option2" : "qz",
"Option3" : "fd",
"Option4" : "fd",
"Question" : "1"
},
"Question10" : {
"Answer" : "d",
"Option1" : "v",
"Option2" : "s",
"Option3" : "b",
"Option4" : "d",
"Question" : "10"
},
"Question2" : {
"Answer" : "dh",
"Option1" : "fj",
"Option2" : "dh",
"Option3" : "dhd",
"Option4" : "dbdb",
"Question" : "2"
},
"Question3" : {
"Answer" : "ss",
"Option1" : "dn",
"Option2" : "vv",
"Option3" : "ss",
"Option4" : "df",
"Question" : "3"
},
"Question4" : {
"Answer" : "bd",
"Option1" : "cbd",
"Option2" : "fdgb",
"Option3" : "xv",
"Option4" : "bd",
"Question" : "4"
},
"Question5" : {
"Answer" : "b",
"Option1" : "dh",
"Option2" : "c",
"Option3" : "b",
"Option4" : "d",
"Question" : "5"
},
"Question6" : {
"Answer" : "dhs",
"Option1" : "janf",
"Option2" : "shs",
"Option3" : "dgd",
"Option4" : "dhs",
"Question" : "6"
},
"Question7" : {
"Answer" : "c",
"Option1" : "dhsh",
"Option2" : "fhsnx",
"Option3" : "c",
"Option4" : "cndnx",
"Question" : "7"
},
"Question8" : {
"Answer" : "cg",
"Option1" : "bs",
"Option2" : "ccb",
"Option3" : "cg",
"Option4" : "fs",
"Question" : "8"
},
"Question9" : {
"Answer" : "vb",
"Option1" : "dhds",
"Option2" : "cc",
"Option3" : "cs",
"Option4" : "vb",
"Question" : "9"
},
"Results" : {
"VwtdCRK0aXQ2bnKe01fy8mYUPqs2" : {
"Akash R" : "3"
}
}
},
"Reviews" : {
"Review" : "Hiiii"
}
}
} }
答案 0 :(得分:0)
为此,您必须将数据库引用更改为-
mDatabaseReference = FirebaseDatabase.getInstance().getReference().child("Users").child(userId);
例如:-
mDatabaseReference = FirebaseDatabase.getInstance().getReference().child("Users").child("VwtdCRK0aXQ2bnKe01fy8mYUPqs2");