如何将加载的数据从Firestore保存到Arraylist

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将加载的数据从Firestore保存到Arraylist相关的知识,希望对你有一定的参考价值。

我正在使用Firestore保留数据。我想加载数据并将其保存在数组中。

@Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate( savedInstanceState );
        setContentView( R.layout.activity_map );

        searchText = (AutoCompleteTextView) findViewById( R.id.search );
        gpsImage = (ImageView) findViewById( R.id.gps_btn );
        info = (ImageView) findViewById( R.id.info_btn );
        cafe = (ImageView) findViewById( R.id.cafe_btn );
        cafelist_btn = (ImageView)findViewById( R.id.cafelist );


        if(isServicesOK()){
            getLocationPermission();
        }

        db.collection("coll")
                .get()
                .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<QuerySnapshot> task) {

                        for (DocumentSnapshot querySnapshot: task.getResult()){
                            placeDetail = new PlaceDetail(querySnapshot.getString("name"),
                                    querySnapshot.getString("address"),
                                    querySnapshot.getString("rating"),
                                    querySnapshot.getString("rates"));

                            namesList.add(placeDetail.getName());
                        }
                    }

                });
        System.out.println("Size: " + namesList.size());
    }

在for循环中,我正在将加载的数据添加到ArrayList,但是我的打印显示该列表为空。有什么方法可以将数据保存到ArrayList吗?

答案

数据可能实际上存储在ArrayList中。您只是在完成数据库查询之前打印列表的内容。

get()是异步的,并在查询完成之前立即返回。查询发生在另一个线程中,然后无论执行什么都将调用您的回调。

如果将log语句移到onComplete回调中,则会看到其内容。但是现在,您只是在完成数据库查询之前打印阵列。

以上是关于如何将加载的数据从Firestore保存到Arraylist的主要内容,如果未能解决你的问题,请参考以下文章

将文件和收集数据从Firestore加载到结构中

将数据从 Firestore 加载到 BigQuery 的适当方法是啥?

显示加载图标,直到Firebase firestore将数据完全加载到textview中

从firestore查询数据时,如何将保存的字符串格式的日期与当前日期进行比较?

如何将从firebase存储上传的图像保存到firestore数据库中的currentUser

Firebase Firestore iOS:如何将图像保存到 Firestore 中的集合中?