FirebaseDatabase НЕ регистрирует значение pu sh - PullRequest
1 голос
/ 17 марта 2020

Прошу прощения, если вопрос немного глупый. Еще нуб.

В моем приложении я создаю кнопку соединения. При щелчке он должен создать сообщение чата, запустить чат и создать нового дочернего элемента «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 ВСЕ ЕЩЕ НЕ ПИСАЕТ .... Любое предложение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...