android 在同一设备上设置值时,如何不触发设备上firebase实时数据库的childEventListener?

yjghlzjz  于 2023-01-15  发布在  Android
关注(0)|答案(1)|浏览(80)

我目前有一些问题与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自己或一些自定义的方式,我必须拿出?谢谢提前!

2mbi3lxu

2mbi3lxu1#

使用ChildEventListener时,您无法控制是否触发此onChildRemoved()
您可以做的是忽略回调,并且在方法中不执行任何操作。

override fun onChildRemoved(dataSnapshot: DataSnapshot) {

     //do nothing here, when notified of a deleted child

    }

相关问题