Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何从Firestore检索数组?_Android_Firebase_Google Cloud Firestore - Fatal编程技术网

Android 如何从Firestore检索数组?

Android 如何从Firestore检索数组?,android,firebase,google-cloud-firestore,Android,Firebase,Google Cloud Firestore,我使用数组数据结构来保存一些信息,如图所示 UserInfo.java public class UserInfo { private String userId, age, height; public UserInfo(String userId, String age, String height) { this.userId = userId; this.age = age; this.height = height; } public String getUs

我使用数组数据结构来保存一些信息,如图所示

UserInfo.java

public class UserInfo {
private String userId, age, height;
public UserInfo(String userId, String age, String height) {
    this.userId = userId;
    this.age = age;
    this.height = height;
}
public String getUserId() {
    return userId;
}
public String getAge() {
    return age;
}
public String getHeight() {
    return height;
  }
}
public class UserInfo {

private String age;
private String height;
private String userId;

public String getAge() {
    return age;
}

public void setAge(String age) {
    this.age = age;
}

public String getHeight() {
    return height;
}

public void setHeight(String height) {
    this.height = height;
}

public String getUserId() {
    return userId;
}

public void setUserId(String userId) {
    this.userId = userId;
}
}
如何获取array1和array2并将其保存为UserInfo对象?
因为我想在Recyclerview中填充数组

您可以从
用户
集合中查询文档,然后获取
信息
数组。对于数组中的每个条目,将其映射到
UserInfo
对象。然后将每个
UserInfo
对象插入新集合
UserInfo
。现在,您可以查询
UserInfo
collection,并在回收器视图中显示结果

以下是如何从Cloud Firestore进行查询:

有关如何将数据添加到UserInfo集合的参考:


希望这有帮助。

首先,您必须检索文档的内容

成功检索DocumentSnapshot后,从中获取Java对象,并使用Gson将对象转换为Json

然后您可以解析Json并生成用户列表。现在您可以在recyclerview中填充列表

FirebaseFirestore db;
List<UserInfo> userList;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_name);
    db = FirebaseFirestore.getInstance();

    userList = new ArrayList<>();
    DocumentReference docRef = db.collection("users").document("h3cj5y....");// you can use your own here
    docRef.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
        @Override
        public void onSuccess(DocumentSnapshot documentSnapshot) {

            Object object = documentSnapshot.getData();
            String json = new Gson().toJson(object);
            Log.v("json",json);
            try {
                JSONObject infoObj=new JSONObject(json).getJSONObject("info");
                Iterator<String> iterator = infoObj.keys();
                while (iterator.hasNext()) {
                    String key = iterator.next();
                    JSONObject objArray=infoObj.getJSONObject(key);
                    UserInfo user=new UserInfo();
                    user.setAge(objArray.getString("age"));
                    user.setHeight(objArray.getString("height"));
                    user.setUserId(objArray.getString("userId"));
                    userList.add(user);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }

        }
    });
}

谢谢,我成功地完成了每个循环,并在HashMap中获得了数组,但我无法将其转换为UserInfo对象。我该怎么做?