我正在尝试从列表调用列表中的“任务”集合中添加所有文档ID。没有错误信息,但列表一直为空。为了尝试查找错误,无论是未连接到Firebase还是存在其他错误,我添加了一条祝词,以查看此错误,并显示for循环正在运行,并且正在检索数据,但列表仍然为空。我可以向您保证,适配器或回收站视图没有问题。我能够写到firebase。这是我的代码
CollectionReference collectionReference = db.collection("Tasks");
collectionReference
//.whereEqualTo("capital", true)
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
String s = document.getId();
list.add(s);
Toast.makeText(TaskList.this, document.getId(), Toast.LENGTH_SHORT).show();
}
} else {
}
}
});
mAdapter = new MyAdapter(list,this);
recyclerView.setAdapter(mAdapter);
任何帮助将不胜感激
Firebase发送异步调用。Android没有诸如await之类的内置功能。因此,您必须在呼叫成功消息中设置数据。如果您尝试在通话之外读取数据,它将无法正常工作。
CollectionReference collectionReference = db.collection("Tasks");
collectionReference
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
String s = document.getId();
list.add(s);
Toast.makeText(TaskList.this, document.getId(),Toast.LENGTH_SHORT).show();
}
mAdapter = new MyAdapter(list,this);
recyclerView.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
} else {
}
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句