首页 > 解决方案 > FirebaseListAdapter 无法从 firebaseDatabase 获取数据

问题描述

这是将数据从 firebase 加载到 listView 的方法。

在此之前尝试FirebaseListAdapter(this,R.layout.list_item,FirebaseDatabase.getInstance.getReference()......) 过,但它显示错误。

然后使用查询添加 FirebaseListOptions,如图所示。但此代码无法在 listView 中加载数据。

在此处输入图像描述

    private void displayChatMessage() {

        ListView listOfMessage = (ListView)findViewById(R.id.list_of_message);

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

        FirebaseListOptions<ChatMessage> options = new FirebaseListOptions.Builder<ChatMessage>()
                .setQuery(query, ChatMessage.class)
                .build();
        adapter = new FirebaseListAdapter<ChatMessage>(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);
    }

}

在 Firebase 中推送数据的片段。

FirebaseDatabase.getInstance().getReference("ChatMessage").push().setValue(new ChatMessage(input.getText().toString(),FirebaseAuth.getInstance().getCurrentUser().getEmail()));

标签: androidfirebasefirebase-realtime-databasefirebaseui

解决方案


推荐阅读