如果使用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