Maison >Java >javaDidacticiel >Pourquoi mon FirebaseListAdapter ne transmet-il pas de messages de discussion individuels après la mise à jour vers Firebase-UI 3.1 ?
FirebaseListAdapter ne transmet pas d'éléments individuels pour l'application de chat - Firebase-UI 3.1
Lors du développement d'une application de chat, des problèmes peuvent survenir lors de la tentative d'affichage messages récupérés d'une base de données Firebase dans un ListView personnalisé. Cela peut se produire lors de la mise à jour des dépendances, en particulier de la version de la bibliothèque Firebase-ui vers la version 3.1.0. Ce qui suit aborde la cause et propose une solution à ce défi.
Problème
Après la mise à jour vers Firebase-UI 3.1.0, le code utilisé pour construire le FirebaseListAdapter non ne fonctionne plus comme prévu. L'approche précédente, qui reposait sur l'instanciation directe de l'adaptateur, est devenue obsolète.
Solution
Pour résoudre ce problème, le code doit être adapté pour se conformer à la nouvelles exigences de Firebase-UI. Cela implique de créer un objet FirebaseListOptions et de le transmettre en tant que paramètre au constructeur 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())); } };
Gestion du cycle de vie de l'écouteur
Pour afficher les données dans la liste, le FirebaseListAdapter utilise un écouteur pour surveiller les modifications dans la base de données Firebase. Cet écouteur doit être démarré et arrêté au cours du cycle de vie de l'activité :
@Override protected void onStart() { super.onStart(); adapter.startListening(); } @Override protected void onStop() { super.onStop(); adapter.stopListening(); }
En mettant en œuvre ces étapes, FirebaseListAdapter affichera avec succès les messages individuels dans le ListView de l'application de chat.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!