当客户端断开连接且运行良好时,我一直在使用onDisconnect删除删除数据。
当wifi断开一小段时间后,当我重新连接时,请确保cancel()之前的 onDisconnect ,否则“旧” onDisconnect 会触发使用此代码。
dbReference.onDisconnect().cancel(new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
databaseReference.onDisconnect().removeValue();
}
});
我的问题是,在设备重启时,我无法取消在设备重启之前设置的旧 onDisconnect ,即使我使用相同的用户名和密码进行连接也是如此。我猜是因为设备已重新启动,有一个新的会话/令牌/东西。文档说明:
“取消在此位置排队的所有断开连接操作”
我希望能够取消旧的 onDisconnect 。这是一个错误吗?除了使用ValueEventListener和onDataChanged监视旧的 onDisconnect ,然后还原损坏。有没有更明智的方法来解决这个错误?
注意:我正在使用firebase 9.8.0。