如果使用Query
添加addValueEventListener
。那么你应该删除使用Query
实例而不是DatabaseReference
实例的侦听器。
与DatabaseReference
开发商用orderByChild
这是Query
类型,以便去除我们需要得到参考查询实例,然后使用removeEventListener
的听众问题。
这是我消除听者的例子:
ValueEventListener carChangesListener;
Query ownerId_Query;
然后
DatabaseReference bikeRef = FirebaseDatabase.getInstance().getReference().child("Cars");
ownerId_Query = bikeRef.orderByChild("ownerId").equalTo(FirebaseAuth.getInstance().getCurrentUser().getUid());
carChangesListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.getValue() != null) {
/*NOTE: handle cars response here*/
}else{
Toast.makeText(getActivity(), "No car found for this user.",
Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(HOME_TAG, "Failed to read value.", databaseError.toException());
Toast.makeText(getActivity(), "Error!" + databaseError.toException().getMessage(),
Toast.LENGTH_LONG).show();
}
};
ownerId_Query.addValueEventListener(bikeChangesListener);
我们删除carChangesListener
我会做如下:
ownerId_Query.removeEventListener(carChangesListener);
因此增加一个ChildEventListener ..那么是否需要将听众删除?如果是这样,我怎么称呼它是因为没有方法od在DatabaseReference上那样? – Lion789