将 FireStore 集合映射到 Java POJO

Rap*_*des 4 android google-cloud-firestore

我正在使用 FireStore 数据库,我想知道如何将这些集合从“Hospital/DcbtizNr0ADNNnd0evlN”转换为 Java 对象?我的意思是,我如何搜索(使用 1 个查询)特定医院并将其所有文档和集合映射到一个 java 对象?

这是我的数据库结构

Pacientes/Fichas/Profissionais 遵循几乎相同的结构:

在此处输入图片说明

Sam*_*ern 8

您可以轻松地将 a 映射QuerySnapshot到对象列表,假设您的应用程序包含Hospital与数据匹配的 POJO 类:

db.collection("Hospital")
        .get()
        .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                if (task.isSuccessful()) {
                    // Convert the whole snapshot to a POJO list
                    List<Hospital> objects = task.getResult().toObjects(Hospital.class);
                } else {
                    Log.d(TAG, "Error getting documents: ", task.getException());
                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

Hospital 类可能如下所示:

public class Hospital {

  // These can either be public properties, or private properties
  // with standard-named getters and setters like getAvenida() and
  // setAvenida()
  public String avenida;
  public String bairro;
  public String cep;
  public String cidade;
  public String estado;
  public String name;
  public String numero;

  // Empty constructor required
  Hospital() {}

}
Run Code Online (Sandbox Code Playgroud)

参考:https : //firebase.google.com/docs/firestore/reference/android/QuerySnapshot.html#toObjects(java.lang.Class )

  • 这些不能一次全部映射。Cloud Firestore 中的查询很浅,必须单独检索来自子集合的数据。 (3认同)