我试图创建一个从Firestore数据创建的对象的ArrayList。据我所知,这些对象正在正确地创建。当我试图访问我要添加它们的ArrayList时,尽管它是空的。我获取集合的引用,然后为查询添加侦听器。
ArrayList<Doctor> docList = new ArrayList<> ();
CollectionReference doctors = db.collection("doctors");
doctors.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
docList.add(document.toObject(Doctor.class);
}
}
}
});
Firebase API是异步的。这意味着不能保证您的ArrayList在以后访问时会被填充。
为了解决这个问题,您可以创建一个单独的方法,在其中使用填充的ArrayList。您将从oncompleteListener
调用此方法,因为您知道它已经在侦听器中填充。
doctors.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
ArrayList<Doctor> docList = new ArrayList<> ();
for (QueryDocumentSnapshot document : task.getResult()) {
docList.add(document.toObject(Doctor.class);
}
doSomethingWithArray(docList);
}
}
});
// ... rest of your code ...
// the new method to process the received arraylist
public void doSomethingWithArray(ArrayList<Doctor> docList) {
// do whatever you need to do with the array list
}
我想获得firestore集合中的文档总数,我正在制作一个论坛应用程序,所以我想显示每个讨论中的当前评论量。有之类的东西吗?
我很难从自定义对象的ArrayList中删除重复项。 删除重复项 自定义对象等于() 删除重复项后的输出 关于为什么它实际上没有删除重复项,有什么提示吗?或者它实际上是通过将副本替换为原始副本来删除副本?不知道这里发生了什么。
问题内容: 我的Firestore数据库结构: 现在我想从中获取文件清单。将有一个包含以下数据的列表。我需要它是因为我想制作一个微调器并将这些数据放入微调器中。然后,用户将选择一些文档并下载。 我尝试使用下面的代码: 但是代码只有在我拥有没有文档集合的数据结构时才起作用。在其他情况下,中没有任何文档。 谢谢! 问题答案: 要在中包含所有文档名称的列表,请使用以下代码: 您的logcat中的结果将是
我写了一个程序,创建了3个.txt格式的文件,并将一些数据写入其中。现在我被要求为这些文件定义一个value对象,并重写toString方法,然后当我读取这些文件时,将它们设置为value对象。现在我完全糊涂了,不知道从何说起。事先谢谢你的帮助
在React/FireStore应用程序上工作,尝试将Id-s放回objects数组中。代码如下: 知道'_zipobject'行有什么问题吗?
我目前正在对firestore中的文档字段进行手动访问,并将它们放入一个对象中,我将该对象定义为JSON。 有没有一种方法可以使这个过程自动化?类似于: