java - 如何在 java 中使用 FirebaseListAdapter 从 firebase 数据库中读取子项?

标签 java android firebase firebase-realtime-database

我是 Firebase 的新手。所以,我有一个这样的数据库结构:

enter image description here

并希望将那些生成的 ID 显示到 ListView 中。我正在使用 FirebaseListAdapter。这是我的代码:

    databaseReference = FirebaseDatabase.getInstance().getReference().child("Firebase").child("Users");
    firebaseListAdapter = new FirebaseListAdapter<String>(this, String.class, android.R.layout.simple_list_item_1, databaseReference) {
        @Override
        protected void populateView(View v, String string, int position) {
            TextView textView = (TextView) v.findViewById(android.R.id.text1);
            textView.setText(string);
        }
    };
    listView = (ListView) findViewById(R.id.listView);
    listView.setAdapter(firebaseListAdapter);

这是我的用户类:

class User {
private String userName;
private String email;

    void setUserName(String userName) {this.userName = userName;}
    String getUserName() {return userName;}

    void setEmail(String email) {this.email = email;}
    String getEmail() {return email;}
}

当我编译这个时,我得到这个错误:com.google.firebase.database.DatabaseException: Failed to convert value of type java.util.HashMap to String

我该如何解决这个问题?

提前致谢!

最佳答案

populateView方法实现改为

firebaseListAdapter = new FirebaseListAdapter<User>(this, User.class, android.R.layout.simple_list_item_1, databaseReference) {
    @Override
    protected void populateView(View v, User user, int position) {
        TextView textView = (TextView) v.findViewById(android.R.id.text1);
        String userKey = this.getRef(position).getKey();
        textView.setText(userKey);
    }
};

关于java - 如何在 java 中使用 FirebaseListAdapter 从 firebase 数据库中读取子项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41281855/

相关文章:

android - 使用 Android Keystore 的 Spongy CaSTLe RSA 加密/解密

android - Android 应用程序中带标签文本的实现概述文本字段输入

c# - FCM(FirebaseMessagingService)OnNewToken 没有被 Android 击中

java - 为什么我无法使用 WildFly 中的 WEB-INF/classes 中的 getResourceAsStream 读取属性文件?

java - 如何检查该值是否已存在于数据库中?

java - 使用 Junit 5 和 Spring Boot 2 在 Mokito 2 中未发现测试

尝试获取 SHA 证书指纹时发生 firebase 错误?

JavaFx 对话框或警报在 Mac OS X 上未按预期显示

android - Android 服务是否应该完全独立于应用程序?

swift - 更改每个用户在 firebase 中的分支中的特定节点