Структура базы данных
Я пытаюсь получить ссылку на пользователей из списка чата. То, что я пытаюсь сделать, - если пользователь вошел в систему, то увидит, что упомянутые пользователи находятся под узлом Uid в списке чата в своем обзоре реселлера.
Я получаю исключение nullpointerexception в следующей строке
DatabaseReference UserRef = rootRef.child("Users").child(chatlist.getId());
Исключение
java.lang.NullPointerException: Can't pass null for argument 'pathString' in child()
at com.google.firebase.database.DatabaseReference.child(com.google.firebase:firebase-database@@19.2.1:96)
at com.shivam.chatapp2.Fragments.Chats.onCreateView(Chats.java:112)
Мой код
public class Chats extends Fragment {
private RecyclerView recyclerView;
private UserAdapter userAdapter;
private List<User> mUsers;
FirebaseUser fuser;
DatabaseReference reference;
FloatingActionButton profile, credentials;
ValueEventListener ChatListListener;
List<Chatlist> usersList;
private ChatsFragmentAdapter chatsFragmentAdapter;
public Chats() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_chats, container, false);
profile = view.findViewById(R.id.fab_edit_profile_pic);
credentials = view.findViewById(R.id.fab_edit_name);
FabAction();
recyclerView = view.findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
fuser = FirebaseAuth.getInstance().getCurrentUser();
usersList = new ArrayList<>();
reference = FirebaseDatabase.getInstance().getReference("Chatlist").child(fuser.getUid());
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
usersList.clear();
if(dataSnapshot.exists()) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
Chatlist chatlist = snapshot.getValue(Chatlist.class);
usersList.add(chatlist);
}
}
//chatList();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
Chatlist chatlist=new Chatlist();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference UserRef = rootRef.child("Users").child(chatlist.getId());
UserRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot: dataSnapshot.getChildren()) {
User user = snapshot.getValue(User.class);
mUsers.add(user);
}
userAdapter = new UserAdapter(getContext(), mUsers, true);
recyclerView.setAdapter(userAdapter);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
return view;
}
Обновление
Список чата. java
public class Chatlist {
public String id;
public String MessageCheck;
public Chatlist() {
}
public Chatlist(String id) {
this.id = id;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
Пользователь. java
public class User {
private String id;
private String First;
private String EmailID;
private String imageURL;
private String status;
public User(String id, String first, String emailID, String imageURL,String status) {
this.id = id;
this.First = first;
this.EmailID = emailID;
this.imageURL = imageURL;
this.status=status;
}
public User() {
}
public User(String userid, String first_name, String eMail) {
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getFirst() {
return First;
}
public void setFirst(String first) {
First = first;
}
public String getImageURL() {
return imageURL;
}
public void setImageURL(String imageURL) {
this.imageURL = imageURL;
}
public String getEmailID() {
return EmailID;
}
public void setEmailID(String emailID) {
EmailID = emailID;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}