Кос Айма Шел Колхем, Колам стремятся стать CS Aval afhad lo yodel lama ze mahzir null. Тамото.
Я пытаюсь создать приложение для чата. У меня нет проблем с отправкой сообщения в базу данных firebase, но когда я пытаюсь прочитать его, оно вылетает, сообщая, что я получаю нулевое значение.
Когда я печатал информацию и пытался получить только ту часть, которая в нем указана, является нулевой, он печатал ее дважды, как будто я повторяю ее.
В первой итерации я получаю идентификатор получателя (в данном случае, потому что это то, что я просил), а во второй итерации я получаю нулевое значение и не знаю почему. Я пытаюсь получить получателя (должен вернуть его идентификатор, в первой итерации я получаю идентификатор, как и ожидалось, а во второй я получаю ноль).
Я хочу, чтобы dataSnapshot
вернул идентификатор получателя и создал instance
из class Chat
из информации в dataSnapshot
. Значение возвращаемого моментального снимка данных: отправленное мной сообщение, получатель этого сообщения и отправитель (текущий пользователь).
мой код:
private void readMessages(final String myId, final String userId) {
chatList = new ArrayList<>();
reference = FirebaseDatabase.getInstance().getReference(CHATS);
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Chat chat = dataSnapshot.getValue(Chat.class);
Log.d(TAG, "onDataChange: " + chat.getReceiver());
**if (chat.getReceiver().equals(userId)) { ** > crashing here, saying getReceiver is null
chatList.add(chat);
}
adapter = new ConversationAdapter(chatList);
converstaionRecyclerView.setAdapter(adapter);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
мой класс чата :
public class Chat {
String sender;
String receiver;
String message;
public Chat(String sender, String receiver, String message) {
this.sender = sender;
this.receiver = receiver;
this.message = message;
}
public Chat() {
}
public String getSender() {
return sender;
}
public void setSender(String sender) {
this.sender = sender;
}
public String getReceiver() {
return receiver;
}
public void setReceiver(String receiver) {
this.receiver = receiver;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
json в ЧАТАХ:
{
"chats" :
{
"-M-l8qvu9AXe9sCSKoKf" :
{
"message" : "h\n",
"receiver" : "receiver id (to whom i sent)",
"sender" : "current user id "
}
}
}