Heim >Java >javaLernprogramm >Warum sendet mein FirebaseListAdapter nach dem Update auf Firebase-UI 3.1 keine einzelnen Chat-Nachrichten?
FirebaseListAdapter pusht keine einzelnen Elemente für die Chat-App – Firebase-UI 3.1
Bei der Entwicklung einer Chat-Anwendung können beim Versuch der Anzeige Probleme auftreten Nachrichten, die aus einer Firebase-Datenbank in einer benutzerdefinierten ListView abgerufen wurden. Dies kann beim Aktualisieren von Abhängigkeiten auftreten, insbesondere bei der Firebase-UI-Bibliotheksversion auf 3.1.0. Im Folgenden wird die Ursache angesprochen und eine Lösung für diese Herausforderung bereitgestellt.
Problem
Nach dem Update auf Firebase-UI 3.1.0 wurde der zum Erstellen des FirebaseListAdapter Nr. verwendete Code verwendet funktioniert nicht mehr wie vorgesehen. Der vorherige Ansatz, der auf der direkten Instanziierung des Adapters beruhte, ist veraltet.
Lösung
Um dieses Problem zu beheben, muss der Code angepasst werden, um dem zu entsprechen neue Anforderungen der Firebase-UI. Dazu gehört die Erstellung eines FirebaseListOptions-Objekts und die Übergabe als Parameter an den FirebaseListAdapter-Konstruktor.
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())); } };
Listener Lifecycle Management
Um Daten in der Listenansicht anzuzeigen, wird der FirebaseListAdapter verwendet verwendet einen Listener, um Änderungen in der Firebase-Datenbank zu überwachen. Dieser Listener muss innerhalb des Lebenszyklus der Aktivität gestartet und gestoppt werden:
@Override protected void onStart() { super.onStart(); adapter.startListening(); } @Override protected void onStop() { super.onStop(); adapter.stopListening(); }
Durch die Implementierung dieser Schritte zeigt der FirebaseListAdapter die einzelnen Nachrichten erfolgreich in der ListView der Chat-Anwendung an.
Das obige ist der detaillierte Inhalt vonWarum sendet mein FirebaseListAdapter nach dem Update auf Firebase-UI 3.1 keine einzelnen Chat-Nachrichten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!