是否可以将实例 ValueEventListener 用于同一活动中使用 addValueEventListener 进



我正在使用方法addValueEventListener,如下所示:

public List<MyClassModel> DoRequestCards() {
valueEventListener = getDatabaseReference()
.child("Example")
.child(Objects.requireNonNull(getFirebaseAuthInstance().getCurrentUser()).getUid())
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
list.clear();
for (DataSnapshot data : dataSnapshot.getChildren()) {
MyClassModel model = data.getValue(MyClassModel.class);
//Retrieves UniqueKey from each example
Objects.requireNonNull(card).setUniqueId(data.getKey());
list.add(model);
}
taskListener.OnSuccess(); //call interface method
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
taskListener.OnError(databaseError.getMessage()); //call interface method
}
});
return list;
}

可以创建另一种方法来检索具有不同数据的不同列表,addValueEventListener在同一valueEventListener实例上再次获取?还是我应该为它创建另一个实例(因为它们处于相同的活动状态并且需要每个人都继续监听他们的更改)?

我在不同的活动中使用相同的 ValueEventListener 实例,但是当活动停止 (onStop) 时,我会删除它(我没有问题)。

您可以使用同一个侦听器两次。 这不是问题。 您可以在侦听器中检查快照,哪个位置触发了侦听器。

最新更新