我目前有一些问题与firebase实时数据库。
例如,当我从实时数据库中删除一个条目时,例如myRef.child(ID).setValue(null)
childEventListener
val firebaseItemsListener = object : ChildEventListener {
override fun onChildAdded(dataSnapshot: DataSnapshot, previousChildName: String?) {
Log.i("onChildAdded",dataSnapshot.toString())
}
override fun onChildChanged(dataSnapshot: DataSnapshot, previousChildName: String?) {
Log.i("onChildChanged",dataSnapshot.toString())
}
override fun onChildRemoved(dataSnapshot: DataSnapshot) {
Log.i("onChildRemoved",dataSnapshot.toString())
}
override fun onChildMoved(dataSnapshot: DataSnapshot, previousChildName: String?) {
Log.i("onChildMoved",dataSnapshot.toString())
}
override fun onCancelled(databaseError: DatabaseError) {
Log.i("onCancelled",databaseError.toString())
}
}
myRef.addChildEventListener(firebaseItemsListener)
将被通知,更具体地说,在本例中是onChildRemoved部分。现在,当我从手机的回收视图中滑动并删除一个条目时,我知道该条目已经被删除,我不希望我的手机特别被通知,因为我的手机不需要该信息,但firebase无论如何都会触发onChildRemoved部分,并通知我的设备该更改。这是我不希望发生的。我现在的问题是,如果有一个既定的方式来做这件事,由firebase自己或一些自定义的方式,我必须拿出?谢谢提前!
1条答案
按热度按时间2mbi3lxu1#
使用
ChildEventListener
时,您无法控制是否触发此onChildRemoved()
。您可以做的是忽略回调,并且在方法中不执行任何操作。