首页 > 解决方案 > 有没有办法从android的firestore中的数组中获取数据

问题描述

我想从user_stories类似的故事和story_start和中获取数据story end

这是我的 Firestore 数据库的图像。

在此处输入图像描述

标签: javaandroidfirebasegoogle-cloud-firestore

解决方案


正如我在您的数据库架构中看到的,您的user_stories属性是数组类型。这意味着,当您尝试获取该文档时,您将获得该属性作为List对象而不是数组。不幸的是,Firestore 无法将该列表转换为自定义对象列表,您必须自己完成。所以请试试这个:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference sendStoriesRef = rootRef.collection("sendstories");
sendStoriesRef.document("kueIJcdQARzEKU7EVio9").get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
    @Override
    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
        if (task.isSuccessful()) {
            DocumentSnapshot document = task.getResult();
            if (document.exists()) {
                List<Map<String, Object>> list = (List<Map<String, Object>>) document.get("user_stories");

                //Iterate through the list to get the desired values
            }
        }
    }
});

现在只需遍历列表即可获得所需的值。如果kueIJcdQARzEKU7EVio9uid用户的,而不是简单地用这个改变那个值uid

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();

推荐阅读