我列出了从我的Cloud Firestore数据库获取值的POJO对象列表。这个列表本身就是一个类,每当我创建一个新的列表时都会记住要检索属性。事实是,列表不是在创建活动中填写的,而是之后的时间。我尝试添加循环,任务,等待,但未获得所需的结果。这是我令人满意地检索数据的方式:
private void retrieveData(){
reference = firestore.collection("attractions");
reference.addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots,
@Nullable FirebaseFirestoreException e) {
attractionList.clear();
for (DocumentSnapshot snapshot : queryDocumentSnapshots) {
Attraction attraction = snapshot.toObject(Attraction.class);
addAttractions(attraction);
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
每次创建新对象时,我都会检索数据:
public AttractionList() {
firestore.setFirestoreSettings(settings);
reference = firestore.collection("attractions");
attractionList = new ArrayList<>();
retrieveData();
}
Run Code Online (Sandbox Code Playgroud)
然后,如果我在创建时在我的活动中检查列表大小:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_attraction);
Toolbar toolbar = findViewById(R.id.tb_attraction);
setSupportActionBar(toolbar);
//Creating POJO List and retrieving data
attractionList = new AttractionList();
Log.e("List Size: ", ""+attractionList.getAttractionList().size());
//List …Run Code Online (Sandbox Code Playgroud)