O FirebaseListAdapter não envia itens individuais para o aplicativo de bate-papo - Firebase-Ui 3.1
Estou criando um aplicativo de bate-papo no Android que usa o google firebase para armazenar mensagens que os usuários escrevem entre si. Para exibir essas mensagens para os usuários, eu as leio no banco de dados e as organizo em um ListView personalizado com um ListAdapter. Isso funcionou bem até que eu atualizei minhas dependências, especificamente a interface do usuário do firebase para:
com.firebaseui:firebase-ui:3.1.0
Agora, o código para construir o adaptador de lista não funciona, sendo:
adapter = new FirebaseListAdapter<ChatMessage>(FirebaseDatabase.getInstance().getReference("Lobbies").child(leaderID).child("Messages"), ChatMessage.class, R.layout.message, this) {
@Override
protected void populateView(View v, ChatMessage model, int position) {
// Get references to the views of message.xml
TextView messageText = (TextView)v.findViewById(R.id.message_text);
TextView messageUser = (TextView)v.findViewById(R.id.message_user);
TextView messageTime = (TextView)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()));
}
};
Para corrigir esse problema, atualizei o código para estar em conformidade com os novos requisitos da interface do usuário do firebase, transformando o código em:
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()));
}
};
Esse código compila bem agora, mas a lista de exibição não está exibindo os dados. Existe uma maneira correta específica de usar a nova dependência da interface do usuário do firebase para tornar o adaptador de lista?