我有一个代码需要使用 Cloud Firestore 中的所有数据更新 UI,在一个集合下,然后需要在添加项目时更新 UI。我使用 Recycler 添加更多数据:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_events);
ButterKnife.bind(this);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
collection_events
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>()
{
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot snapshot:
Objects.requireNonNull(task.getResult())){
EventsCurrent eventsCurrent =
snapshot.toObject(EventsCurrent.class);
eventsCurrent.setId(snapshot.getId());
Log.d(TAG,snapshot.getId());
eventsCurrentList.add(eventsCurrent);
}
LinearLayoutManager linearLayoutManager = new
LinearLayoutManager(getApplicationContext());
eventsAdapter = new
EventsAdapter(EventsActivity.this,eventsCurrentList);
eventsAdapter.setEventsCurrents(eventsCurrentList);
recylerview_events.setLayoutManager(linearLayoutManager);
recylerview_events.setHasFixedSize(true);
recylerview_events.setAdapter(eventsAdapter);
isFirstTime = false;
}else {
Log.d(TAG, "Error getting documents: ",
task.getException());
}
}
});
}
在这里,我同时使用get()& ,addSnapshotListener()因此我最初通过 获取所有数据,get()并通过 获取更新或添加的数据 addSnapshotListener()。
监听器被调用并且我的数据加倍并且数据被填充两次的问题。
有人可以帮我吗?
米脂
蝴蝶不菲
相关分类