将所有字段名称从 firestore 文档获取到数组列表

Ric*_*ues 3 java android arraylist firebase google-cloud-firestore

我正在尝试ArrayList从文档中获取包含所有字段名称的文件并将其转换为ArrayList.

我已经能够从一个集合中做到这一点,我将所有文档都放在一个集合中,ArrayList但我不能从一个文档中做到这一点。

下面是所有文档的代码和数据库的图像以及我想要的。

names_clinics= new ArrayList<>();

    mFirebaseFirestore = FirebaseFirestore.getInstance();
    mFirebaseFirestore.collection("CodeClinic")
            .get()
            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if (task.isSuccessful()) {
                        for (DocumentSnapshot document : task.getResult()) {
                            names_clinics.add(document.getId());
                            Log.d("CLINIC CODE", document.getId() + " => " + document.getData());
                        }
                    } else {
                        Log.d("CLINIC CODE", "Error getting documents: ", task.getException());
                    }
                }
            });
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

谢谢:D

Ale*_*amo 5

要打印这些属性名称,请使用以下代码:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
DocumentReference codesRef = rootRef.collection("CodeClinic").document("Codes");
codesRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
    @Override
    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
        if (task.isSuccessful()) {
            List<String> list = new ArrayList<>();
            Map<String, Object> map = task.getResult().getData();
            for (Map.Entry<String, Object> entry : map.entrySet()) {
                list.add(entry.getKey());
                Log.d("TAG", entry.getKey());
            }
            //Do what you want to do with your list
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

输出将是:

Clinica
FEUP
outra
Run Code Online (Sandbox Code Playgroud)