gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 19:47:46 24 4
gpt4 key购买 nike

我正在使用 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() 是异步的,在查询完成之前立即返回。查询发生在另一个线程中,然后无论它完成什么,您的回调都会被调用。

如果将日志语句移至 onComplete 回调内,您将看到它的内容。但现在,您只是在数据库查询完成之前打印数组。

关于java - 如何将加载的数据从 Firestore 保存到 Arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59110356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com