Firebase实时数据库:有没有一种方法可以避免在删除值时调用onDataChange?

时间:2018-10-25 05:39:40

标签: java android firebase firebase-realtime-database

我想知道是否有一种方法可以避免在删除值时调用onDataChange。 我想删除节点内的所有值,但无法完全删除该节点,因为我在onDataChange内进行了设置。

public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
     if (!(dataSnapshot.haschild(aValue))
           //add aValue to the child

     if (dataSnapshot...

因此,在删除节点后立即重新创建该节点。 此外,即使节点已被删除,onDataChange中的语句也会被调用,从而使应用程序崩溃。 目前,我设置了boolean来检查该节点是否已删除并且它是否可以工作,但是我想知道是否有更好的方法来完成它。

1 个答案:

答案 0 :(得分:0)

  

我想知道是否有一种方法可以避免在删除值时调用onDataChange。

不,没有。根据有关ValueEventListener的onDataChange()方法的官方文档:

  

将使用此位置的数据快照调用此方法。每次数据更改时也会调用它。

换句话说,即使它是写,更新或删除操作,也会触发此方法。因此,每次数据库发生更改时,onDataChange()都会触发,很遗憾,您无法避免这种情况。