Java 如何将firestore数据库中的所有文档id提取并存储到阵列适配器

Java 如何将firestore数据库中的所有文档id提取并存储到阵列适配器,java,android,firebase,google-cloud-firestore,android-arrayadapter,Java,Android,Firebase,Google Cloud Firestore,Android Arrayadapter,实际上,我正在尝试将firestore数据库中的所有文档id提取到数组适配器中,因为我使用的是document.getid(),但不是将所有文档id一起提取,而是一个接一个地提取它们。然而,我真正想要的是,所有id都应该显示在一个列表中。我如何解决这个问题?任何帮助都将不胜感激。 看一看我试图实现的代码 public void onClick(View v) { if (position==0) { db.collectio

实际上,我正在尝试将firestore数据库中的所有文档id提取到数组适配器中,因为我使用的是document.getid(),但不是将所有文档id一起提取,而是一个接一个地提取它们。然而,我真正想要的是,所有id都应该显示在一个列表中。我如何解决这个问题?任何帮助都将不胜感激。 看一看我试图实现的代码

public void onClick(View v) {
                if (position==0) {
                    db.collection("Listening")
                            .get()
                            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                                @Override
                                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                                    if (task.isSuccessful()) {
                                        for (QueryDocumentSnapshot document : task.getResult()) {
                                            if (document != null) {
                                                AlertDialog.Builder builderSingle = new AlertDialog.Builder(mContext);

                                                builderSingle.setTitle("Select A Test");

                                                final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(mContext, android.R.layout.select_dialog_singlechoice);

                                                //  for (int i=0;i<document.getId().;i++) {

                                           //  }
                                                builderSingle.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
                                                    @Override
                                                    public void onClick(DialogInterface dialog, int which) {
                                                        dialog.dismiss();
                                                    }
                                                });

                                                builderSingle.setAdapter(arrayAdapter, new DialogInterface.OnClickListener() {
                                                    @Override
                                                    public void onClick(DialogInterface dialog, int which) {
                                                        String strName = arrayAdapter.getItem(which);
                                                        Intent intent=new Intent(mContext,Listening.class);
                                                        intent.putExtra("tname",strName);
                                                        mContext.startActivity(intent);
                                                    }
                                                });
                                                builderSingle.show();
                                            } else {
                                                Log.d("LOGGER", "No such document");
                                            }
                                        }
                                    } else {
                                        Log.w(TAG, "Error getting documents.", task.getException());
                                    }
                                }
                            });
                    }
            }
        });
public void onClick(视图v){
如果(位置==0){
数据库收集(“侦听”)
.get()
.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
对于(QueryDocumentSnapshot文档:task.getResult()){
如果(文档!=null){
AlertDialog.BuilderBuilderSingle=新建AlertDialog.Builder(mContext);
setTitle(“选择测试”);
final ArrayAdapter ArrayAdapter=新的ArrayAdapter(mContext,android.R.layout.select\u dialog\u singlechoice);

//对于(int i=0;i根据您的评论:

我想取所有文件名

请使用以下代码获取所有文档ID

db.collection("Listening").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
    @Override
    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        List<String> ids = new ArrayList<>();
        if (task.isSuccessful()) {
            for (QueryDocumentSnapshot document : task.getResult()) {
                String id = document.getId();
                ids.add(id);
            }
        }
        ListView listView = (ListView) findViewById(R.id.list_view);
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(mContext, android.R.layout.select_dialog_singlechoice, ids);
        listView.setAdapter(arrayAdapter);
    }
});

请注意,我在循环外部创建了适配器,并且使用了带三个参数的构造函数。

我发现文档是空的。为了显示数据,您的文档应该包含一些数据。如果您感兴趣,建议您从Cloud Firestore数据库检索数据并在中显示a
RecyclerView
使用
FirestoreRecyclerAdapter
@AlexMamo我知道如何显示文档中的数据,但我想要的是,集合中的所有文档都应该被提取到数组适配器中。您没有任何可以显示的数据(根据屏幕截图).@AlexMamo你还是不明白我不想获取数据我想获取所有文档名
Test 1
Test 2
Test 3