Прошу прощения, если вопрос немного глупый. Еще нуб.
В моем приложении я создаю кнопку соединения. При щелчке он должен создать сообщение чата, запустить чат и создать нового дочернего элемента «chatwith» в разделе «Пользователи», как показано ниже:
private void createChat() {
createDbkey = keepTrackOfChat.push().getKey();
multipleChat = new MultipleChat();
multipleChat.setMultipleChatImage(chatimg);
multipleChat.setMultipleChatName(chatname);
multipleChat.setMultipleChatId(chatkey);
keepTrackOfChat.child(createDbkey).setValue(multipleChat);
final DatabaseReference addMyRefToChat = FirebaseDatabase.getInstance().getReference("UserChat")
.child(online_user_id);
final DatabaseReference otherRefToCHat = FirebaseDatabase.getInstance().getReference("UserChat")
.child(chatkey);
addMyRefToChat.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
// HO GIA UNA ATTIVITA----------
if (dataSnapshot.exists()) {
Log.d("MainActivity", "USER HAS A CHAT ROOM");
Intent intent = new Intent(MainActivity.this, ChatActivity.class);
intent.putExtra("receiverId", chatkey);
intent.putExtra("senderId", online_user_id);
startActivity(intent);
}
// NON HO UNA ATTIVITA-----------
if (!dataSnapshot.exists()) {
final ChatMessage chatMessage = new ChatMessage();
chatMessage.setMessageUser(online_user_id);
chatMessage.setMessageTo(chatkey);
chatMessage.setMessageText("Hello");
chatMessage.setBanId(online_user_id);
chatMessage.setUser_nickname(name);
otherRefToCHat.push().setValue(chatMessage);
addMyRefToChat.push().setValue(chatMessage);
completeDatabase();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
private void completeDatabase() {
final DatabaseReference chatReference = FirebaseDatabase.getInstance().getReference()
.child("Users").child(chatkey).child("chatwith");
createDbkey = chatReference.push().getKey();
multipleChat = new MultipleChat();
multipleChat.setMultipleChatImage(thumb_image);
multipleChat.setMultipleChatName(name);
multipleChat.setMultipleChatId(online_user_id);
chatReference.child(createDbkey).setValue(multipleChat);
Intent intent = new Intent(MainActivity.this, ChatActivity.class);
intent.putExtra("receiverId", chatkey);
intent.putExtra("senderId", online_user_id);
startActivity(intent);
}
Он отлично работает при создании chatMessage, но никогда не вставляет первую часть кода, которая Это
createDbkey = keepTrackOfChat.push().getKey();
multipleChat = new MultipleChat();
multipleChat.setMultipleChatImage(chatimg);
multipleChat.setMultipleChatName(chatname);
multipleChat.setMultipleChatId(chatkey);
keepTrackOfChat.child(createDbkey).setValue(multipleChat);
Любое предложение, где я не прав? Спасибо заранее.
Я убрал каждую вещь, чтобы получить ТОЛЬКО с помощью кнопки OnClicklistener, которая делает что-то, что
joinChatButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
count++;
}
});
Внутри пустоты я положил
joinChatButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
count++;
multipleChat = new MultipleChat();
multipleChat.setMultipleChatImage(thumb_image);
multipleChat.setMultipleChatId(online_user_id);
multipleChat.setMultipleChatName(name);
DatabaseReference ref1 = FirebaseDatabase.getInstance().getReference("Users")
.child(chatkey).child("chatwith");
ref1.push().setValue(multipleChat);
}
});
База данных Firebase ВСЕ ЕЩЕ НЕ ПИСАЕТ .... Любое предложение?