我想知道是否有一种方法可以避免在删除值时调用onDataChange
。
我想删除节点内的所有值,但无法完全删除该节点,因为我在onDataChange
内进行了设置。
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (!(dataSnapshot.haschild(aValue))
//add aValue to the child
if (dataSnapshot...
因此,在删除节点后立即重新创建该节点。
此外,即使节点已被删除,onDataChange
中的语句也会被调用,从而使应用程序崩溃。
目前,我设置了boolean
来检查该节点是否已删除并且它是否可以工作,但是我想知道是否有更好的方法来完成它。
答案 0 :(得分:0)
我想知道是否有一种方法可以避免在删除值时调用onDataChange。
不,没有。根据有关ValueEventListener的onDataChange()方法的官方文档:
将使用此位置的数据快照调用此方法。每次数据更改时也会调用它。
换句话说,即使它是写,更新或删除操作,也会触发此方法。因此,每次数据库发生更改时,onDataChange()
都会触发,很遗憾,您无法避免这种情况。