android - 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()));
解决方案
推荐阅读
- angular - 使用延迟加载的模块重置路由器配置
- visual-studio-code - 根据新文件 VSCode 生成启动代码
- c++ - 有没有办法在没有 std::move 的情况下在 C++ 中调用移动赋值运算符?
- selenium - WebdriverIO:执行上下文在分离框架中不可用
- c# - 可注入单例服务但不是 new()able .net 核心
- amazon-web-services - AWS ECS 容器随机重启
- c++ - 如何在 gcc 或 clang 中使用 c++20(启用模块)包含多个预编译头文件
- npm - 运行 vue dev server gitlab-ci 和微服务架构
- linux - 为什么 Qemu 运行与原生运行不同?
- java - 在 Android 应用中显示用户的 YouTube 数据,例如用户喜欢的视频和订阅