java android firebase firebase-realtime-database firebaseui

java - Error de constructor de adaptador de lista de Firebase



android firebase-realtime-database (1)

Creé una función para mostrar un mensaje de chat, seguí un tutorial y también miré la documentación del adaptador de lista de Firebase, pero no importa lo que haga, recibo este error:

Error:(98, 19) error: constructor FirebaseListAdapter in class FirebaseListAdapter<T> cannot be applied to given types; required: FirebaseListOptions<ChatMessage> found: Chat,Class<ChatMessage>,int,DatabaseReference reason: actual and formal argument lists differ in length where T is a type-variable: T extends Object declared in class FirebaseListAdapter

Aquí está mi código:

private void displayChatMessage() { ListView listOfMessage = (ListView)findViewById(R.id.list_of_messages); FirebaseRecyclerOptions<ChatMessage> options = new FirebaseRecyclerOptions.Builder<ChatMessage>() .setQuery(query, ChatMessage.class) .build(); adapter = new FirebaseListAdapter<ChatMessage, Holder>(options){ @Override protected void populateView(View v, ChatMessage model, int position) { //Get references to the views of list_item.xml TextView messageText, messageUser, messageTime; messageText = (TextView) v.findViewById(R.id.message_text); messageUser = (TextView) v.findViewById(R.id.message_user); messageTime = (TextView) v.findViewById(R.id.message_time); messageText.setText(model.getMessageText()); messageUser.setText(model.getMessageUser()); messageTime.setText(DateFormat.format("dd-MM-yyyy (HH:mm:ss)", model.getMessageTime())); } }; listOfMessage.setAdapter(adapter); }


Lo siguiente está implícito en FirebaseUI versión 3.0+

quita esto:

adapter = new FirebaseListAdapter<ChatMessage>(this,ChatMessage.class,R.layout.list_item,FirebaseDatabase.getInstance().getReference())

necesitas agregar esto:

FirebaseListOptions<ChatMessage> options = new FirebaseListOptions.Builder<ChatMessage>() .setQuery(query, ChatMessage.class) .setLayout(android.R.layout.simple_list_item_1) .build(); adapter = new FirebaseListAdapter<ChatMessage>(options){

query es la consulta que realiza para el ejemplo del adaptador de lista:

Query query = FirebaseDatabase.getInstance().getReference().child("chats");

Más información aquí:

Usando FirebaseUI para llenar un ListView