如何从android的fireStore数据库中读取嵌套地图

文卡特

在此处输入图片说明

在上图中,我有一张地图,其中包含 2020、2021 等的数组列表。我想在 RecyclerView 中显示数组数据。如何在android中做到这一点?

如果地图包含地图列表,也如何检索数据。我能够获取带有字段名称的文档,但在如何获取带有字段名称和数据的地图方面苦苦挣扎。

亚历克斯·马莫

DocumentSnapshot 的getData()方法,返回类型为 的对象Map<String, Object>由于它是一个 Map,我们可以简单地获取year,然后遍历相应的 URL,如下面的代码行所示:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference subjectRef = rootRef.collection("subject");
DocumentReference politicalScienceRef = subjectRef.document("political science");
politicalScienceRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
    @Override
    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
        if (task.isSuccessful()) {
            DocumentSnapshot document = task.getResult();
            if (document.exists()) {
                List<String> urls = new ArrayList<>();
                Map<String, Object> data = document.getData();
                Map<String, Object> year = (Map<String, Object>) data.get("year");
                for (Map.Entry<String, Object> entry : year.entrySet()) {
                    List<String> yearUrls = (List<String>) entry.getValue();
                    for (String url : yearUrls) {
                        urls.add(url);
                    }
                }
                for (String url : urls) {
                    Log.d("TAG", url);
                }
            } else {
                Log.d("TAG", "No such document");
            }
        } else {
            Log.d("TAG", "get failed with ", task.getException());
        }
    }
});

最后,只需将urls列表传递给适配器,并将所有这些 URL 显示到 RecyclerView 中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用cursorloader读取Android中的SQLite数据库?

我如何才能从Android的数据库中读取

如何在Firestore数据库中快速更新数组中的对象(地图)?

如何在Firestore中读取嵌套的数组和地图?

如何将我从数据库中读取的 Firestore 文档数据存储在变量中?

如何从数据库中读取json

如何通过POJO类从Firebase实时数据库中读取嵌套父节点的值?

如何从Java的MySQL cPannel数据库中为Android应用读取或写入数据

如何从数据库中的坐标向地图添加项目?

如何在Firebase数据库中嵌套数据?

如何从 Firestore 数据库中检索数据

如何从 Cloud Firestore 数据库中检索数据集合

如何在android中读取特定的消息格式并存储在sqlite数据库中?

如何通过R中的块从数据库读取数据?

如何从Firebase数据库Android获取嵌套推键

如何从vb中的数据库中读取测验问题?

在android中读取mysql数据库返回空值

在Android Studio中从Firebase数据库读取对象

如何在PHP中管理嵌套的数据库事务?

如何在Firebase数据库中获取嵌套键

如何摆脱数据库查询列表中的嵌套列表?

Android Studio:应用未保存到数据库或从数据库中读取

Android SQLite 数据库 - 不从数据库中读取浮点数的小数部分

如何限制用户访问 firebase firestore 中的数据库?

Firestore:如何在整个数据库中搜索?

如何在Firestore数据库中定义“ App”语句?

如何在Firestore中实施数据库架构?

如何在 firebase 数据库的 firestore 中存储 0.00

如何在 Firestore 数据库中搜索?