java - 如何读取 Firebase 实时数据库中的嵌套数据( HashMap )

标签 java firebase firebase-realtime-database hashmap

我遵循这个tutorial并将多个图像保存到我的 firebase 数据库中:

enter image description here

Gallery是hashmap,我如何读取这些数据?

我的 POJO 类:

public class Tasks {
String titletask, decriptiontask, datetask, keytask, imagetask;
HashMap<String,String> gallery;

当我尝试使用此代码时:

mRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

        for(DataSnapshot dataSnapshot1: dataSnapshot.getChildren())
        {
            Tasks task = dataSnapshot1.getValue(Tasks.class);
            list.add(task);
        }
        adapter = new TasksAdapter(getActivity(),list);
        mRecyclerView.setAdapter(adapter);
        adapter.notifyDataSetChanged();
    }

我有一个错误:

Failed to convert value of type java.util.HashMap to String

最佳答案

您的 Tasks 中的此字段类:

HashMap<String,String> gallery;

将转换为如下 JSON 结构:

"gallery": {
  "key1": "value1",
  "key2": "value2",
  "key3": "value3"
}

由于这不是您所拥有的结构,因此映射将会失败。

<小时/>

要描述 JSON,您需要为每个图库项目定义一个类:

public class GalleryItem {
  public String ImgLink;
}

然后:

HashMap<String,GalleryItem> gallery;
<小时/>

或者,您也可以逃脱 Object 的惩罚。 :

HashMap<String,Object> gallery;

并且(如果这确实有效)处理 gallery 中的值映射为Map<String, String>他们自己。

关于java - 如何读取 Firebase 实时数据库中的嵌套数据( HashMap ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61655019/

相关文章:

java - java中的细粒度身份验证

firebase-realtime-database - 类型 'query' Ionic Firebase 中缺少属性 'Observable<{}[]>'

swift - 使用 Swift 检索 Firebase 中的多个数据

ios - Firebase IOS - 使用电话号码创建用户

java - 如何从 firebase 分配增量 ID 号

android - 基本 Firebase 数据库保存

java - 如何在 Android NDK 上使用 JNI 在 C 和 Java 之间传递复杂结构

java - 显示所选文件

java - Eclipse JFrame 错误

JavaScript onClick 异步到 firebase 删除文档