Java 如何将firestore数据库中的所有文档id提取并存储到阵列适配器
实际上,我正在尝试将firestore数据库中的所有文档id提取到数组适配器中,因为我使用的是document.getid(),但不是将所有文档id一起提取,而是一个接一个地提取它们。然而,我真正想要的是,所有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
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数据库检索数据并在中显示aRecyclerView
使用FirestoreRecyclerAdapter
@AlexMamo我知道如何显示文档中的数据,但我想要的是,集合中的所有文档都应该被提取到数组适配器中。您没有任何可以显示的数据(根据屏幕截图).@AlexMamo你还是不明白我不想获取数据我想获取所有文档名
Test 1
Test 2
Test 3