当前位置: 首页 > 知识库问答 >
问题:

如何从Firestore中检索数组地图数据并存储在android studio中的数组中?

陶星波
2023-03-14

完整数据库结构

错误

DocumentReference docRef = db.collection("user").document("65pH8UOnV4Pz8oxogsqsL9eE91L2");
            docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
                @Override
                public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                    if (task.isSuccessful()) {
                        DocumentSnapshot document = task.getResult();
                        if (document.exists()) {
                             String[] array = (String[]) document.getData().get("card");
                                    Log.d(TAG, "DocumentSnapshot data: "+ document.getData().get("card"));
                        } else {
                            Log.d(TAG, "No such document");
                        }
                    } else {
                        Log.d(TAG, "get failed with ", task.getException());
                    }
                }
            });

共有1个答案

淳于祺
2023-03-14

为了解析结果,您可以将模型java类与firestore上的结构相同,然后使用它在您的onComplete方法中进行解析。

//UserResponse.java
    public class UserResponse {

    private ArrayList<Card> card;
    private String balance;
    private String email;
    private String name;
    private String phonenumber;

    public String getBalance() {
        return balance;
    }

    public void setBalance(String balance) {
        this.balance = balance;
    }

    public String getEmail() {
        return email;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPhonenumber() {
        return phonenumber;
    }

    public void setPhonenumber(String phonenumber) {
        this.phonenumber = phonenumber;
    }


    public  ArrayList<Card> getCards(){
        return card;
    }
    public void setCard(ArrayList<Card> card){
        this.card = card;
    }


}
//Card.java
public class Card{

    private String cvv;

    private String exp;

    public String getCvv() {
        return cvv;
    }

    public void setCvv(String cvv) {
        this.cvv = cvv;
    }

    public String getExp() {
        return exp;
    }

    public void setExp(String exp) {
        this.exp = exp;
    }

    public String getCarddetail() {
        return carddetail;
    }

    public void setCarddetail(String carddetail) {
        this.carddetail = carddetail;
    }

    private String carddetail;
   
}

然后在firestore中get code change添加以下行

UserResponse userResponse = document.toObject(UserResponse.class)
ArrayList<Card> cards = userResponse.getCards();

像这样:

DocumentReference docRef = db.collection("user").document("65pH8UOnV4Pz8oxogsqsL9eE91L2");
        docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
    @Override
    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
        if (task.isSuccessful()) {
            DocumentSnapshot document = task.getResult();
            if (document.exists()) {
                UserResponse userResponse = document.toObject(UserResponse.class);
             ArrayList<Card> cards = userResponse.getCards();

                Log.d(TAG, "DocumentSnapshot data: "+ userResponse.getCards());
            } else {
                Log.d(TAG, "No such document");
            }
        } else {
            Log.d(TAG, "get failed with ", task.getException());
        }
    }
});
 类似资料:
  • 我想寻求帮助,了解如何从Firestore中检索称为“城市”的嵌套地图数组的数据 到MutableList ,然后我想将其插入到回收器视图中,其中来自“区域”的数据用于标题,数据“城市”用于常规列表项。 区域数据: 可变列表 , 当我按照 Alex Mamo https://medium.com/firebase-tips-tricks/how-to-map-an-array-of-objects

  • 问题内容: 我正在尝试以android应用程序的形式创建一个小型课程聚合程序。 我的课程全部存储在Firebase实时数据库中,该数据库可从firebase控制台查看,并且一切正常。 问题是我已经编写了一个Java方法来连接到DB,从DB检索数据,将数据转换为Custom Java对象,将其附加到另一个Custom Java对象,然后将该对象保存到ArrayList中。 与数据库的连接已成功建立,

  • 我的activity.xml文件中有一个ImageView。我正在其中设置一个从服务器检索的图像。我想将此图片从ImageView插入到我的Sqlite数据库中。谁能给我解释一下怎么做吗?我在Sqlite中的表是这样的由于我是数据库新手,请一步一步告诉我。 我添加了以下代码,但插入时有一个错误,即插入未定义

  • 我有一个用Java编写的管理应用程序,可以管理我的用户 我创建了一个自定义json 这就是我的JSON看起来的样子 在我的列表中,我只显示电子邮件地址 现在我的问题,例如,如果我单击包含电子邮件的列表,我想在对话框中显示与此电子邮件相关的数据,即、和 怎样​​我可以检索其他值吗​​使用电子邮件? 我在网上找不到任何关于它的信息

  • 我一直在使用firebase RTDB,我准备将它迁移到FireStore。 我有与许多其他节点关联的userid。 例如,我有、、。 为了将user与其他集合关联,我使用了、,因为RTDB不支持复杂查询,我希望能够查询特定用户日期范围之间的消息。 现在,我意识到firestore在数据查询方面要比RTDB好得多,并且将具有和和的集合。 在这种情况下,我应该在和集合中存储还是整个文档?

  • 问题内容: 大家好,我想在html页面上显示数据库表的全部内容。我试图先从数据库中获取记录并存储在其中,但是当我在html页面上返回数组列表时,它仅重复显示最后一条记录作为数据库表的计数。这是下面的代码: 问题答案: 尝试以下代码 这是我的模特班 这是我的查看方法