java - 从 Firestore 查询数据到 Arraylist 但一无所获?
问题描述
我在 ArrayList 中添加数据时遇到问题。我试图在数组列表中添加数据但一无所获
这是我的代码
public class fmMain extends Fragment {
private ArrayList<markerList> posList = new ArrayList<markerList>();
public fmMain() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, final ViewGroup container,
Bundle savedInstanceState) {
//Firebase get data
stores.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
for (QueryDocumentSnapshot documentSnapshot: queryDocumentSnapshots){
markerList m = new markerList(documentSnapshot.getId());
posList.add(m);
}
Log.d(TAG,posList.toString()); //got value
}
});
Log.d(TAG,posList.toString()); //got nothing
}
正如您所看到的,当我尝试在函数 onSuccess 中添加值时,我得到了已添加的值,但是当我尝试添加外部函数时,我什么也没得到
解决方案
您收到此错误是因为您将异步调用与同步调用混合在一起。onSuccess
当您从 Firebase 成功接收数据时,将调用该方法(异步)。但是 onCreateView 方法不会等待。它会直接进入第二个
Log.d(TAG,posList.toString()); //got nothing
你什么也得不到(实际上我认为你会得到一个空字符串),因为你还没有收到数据。
推荐阅读
- python - 如何根据条件从 DF 创建 DF
- sql - 当整个列为 0 或 null 时,有没有办法可以隐藏 Oracle View 透视中的列?
- python - PyCharm SonarLint 如何查看所有文件的所有问题?
- python - 如何从python中的txt文件制作数字列表?
- git - Git远程跟踪分支和上游分支不同
- c# - 如何在 UWP 中启动应用程序时显示音乐库中的所有文件
- c - 检查给定主机上的端口是否打开
- flutter - 如何在颤动中重置矩阵手势检测器小部件中的矩阵比例?
- clickhouse - ClickHouse - 了解查询探查器
- flutter - 删除列内不需要的空间,同时将图像放在最后?