Rumah >Java >javaTutorial >Mengapa FirebaseListAdapter Saya Tidak Menolak Mesej Sembang Individu Selepas Mengemas kini ke Firebase-UI 3.1?

Mengapa FirebaseListAdapter Saya Tidak Menolak Mesej Sembang Individu Selepas Mengemas kini ke Firebase-UI 3.1?

DDD
DDDasal
2024-12-22 13:30:45651semak imbas

Why Doesn't My FirebaseListAdapter Push Individual Chat Messages After Updating to Firebase-UI 3.1?

FirebaseListAdapter Tidak Menolak Item Individu untuk Apl Sembang - Firebase-UI 3.1

Dalam membangunkan aplikasi sembang, isu boleh timbul apabila cuba memaparkan mesej yang diambil daripada pangkalan data Firebase dalam ListView tersuai. Ini boleh berlaku apabila mengemas kini kebergantungan, terutamanya versi perpustakaan firebase-ui kepada 3.1.0. Perkara berikut menangani punca dan menyediakan penyelesaian kepada cabaran ini.

Masalah

Selepas mengemas kini kepada Firebase-UI 3.1.0, kod yang digunakan untuk membina no FirebaseListAdapter lebih lama beroperasi seperti yang dimaksudkan. Pendekatan sebelumnya, yang bergantung pada penyesuai langsung, telah tidak digunakan lagi.

Penyelesaian

Untuk menyelesaikan isu ini, kod mesti disesuaikan untuk mematuhi keperluan baharu Firebase-UI. Ini melibatkan mencipta objek FirebaseListOptions dan menghantarnya sebagai parameter kepada pembina FirebaseListAdapter.

FirebaseListOptions<ChatMessage> options = new FirebaseListOptions.Builder<ChatMessage>()
            .setQuery(FirebaseDatabase.getInstance().getReference("Lobbies").child(leaderID).child("Messages"), ChatMessage.class).setLayout(R.layout.message).build();

    adapter = new FirebaseListAdapter<ChatMessage>(options) {
        @Override
        protected void populateView(View v, ChatMessage model, int position) {
            // Get references to the views of message.xml
            TextView messageText = v.findViewById(R.id.message_text);
            TextView messageUser = v.findViewById(R.id.message_user);
            TextView messageTime = v.findViewById(R.id.message_time);

            // Set their text
            messageText.setText(model.getMessageText());
            messageUser.setText(model.getMessageUser());

            // Format the date before showing it
            messageTime.setText(DateFormat.format("dd-MM-yyyy (HH:mm:ss)",
                    model.getMessageTime()));
        }
    };

Pengurusan Kitaran Hayat Pendengar

Untuk memaparkan data dalam paparan senarai, FirebaseListAdapter menggunakan pendengar untuk memantau perubahan dalam pangkalan data Firebase. Pendengar ini mesti dimulakan dan dihentikan dalam kitaran hayat aktiviti:

@Override
protected void onStart() {
    super.onStart();
    adapter.startListening();
}


@Override
protected void onStop() {
    super.onStop();
    adapter.stopListening();
}

Dengan melaksanakan langkah ini, FirebaseListAdapter akan berjaya memaparkan mesej individu dalam ListView aplikasi sembang.

Atas ialah kandungan terperinci Mengapa FirebaseListAdapter Saya Tidak Menolak Mesej Sembang Individu Selepas Mengemas kini ke Firebase-UI 3.1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn