Android 为什么在应用程序进入后台后从firebase中删除数据不起作用?

Android 为什么在应用程序进入后台后从firebase中删除数据不起作用?,android,firebase,Android,Firebase,我正试图从实时firebase中删除一些用户。它的工作,但如果我把应用程序在后台,当我再次打开应用程序的用户不会从数据库中删除。 在调试模式下删除用户,但在rest模式下不删除。 我还使用Firebase提供的电子邮件/密码身份验证 这是我的代码(该方法是在为菜单选择的OnOptions Item中调用的): } 编辑 DB规则: { "rules": { ".read": "auth != null", ".write": "auth != null" } }

我正试图从实时firebase中删除一些用户。它的工作,但如果我把应用程序在后台,当我再次打开应用程序的用户不会从数据库中删除。 在调试模式下删除用户,但在rest模式下不删除。 我还使用Firebase提供的电子邮件/密码身份验证

这是我的代码(该方法是在为菜单选择的OnOptions Item中调用的):

}

编辑 DB规则:

     {
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}

private static DBHelper DBHelper=new DBHelper()可能是您的问题。

当应用程序处于后台时,操作系统可能会将其关闭以释放一些内存。如果您再次将其放在前面,活动可以重新启动,因为它们将状态存储到磁盘,但您的静态变量将丢失。

private static DBHelper DBHelper=new DBHelper()可能是您的问题。

当应用程序处于后台时,操作系统可能会将其关闭以释放一些内存。如果您再次将其放在前面,活动可以重新启动,因为它们将状态存储到磁盘,但静态变量丢失。

我尝试将所有内容都放入活动中,而不使用DBHelper类。我在onCreate方法中实例化了ref,并将deleteUser方法中的内容放入活动中。同样的问题似乎是您没有实现实例状态保存。请参阅“Firebase数据库错误:权限被拒绝”。但为什么在从数据库中删除数据之前要重新验证用户?我尝试将所有内容都放入活动中,而不使用DBHelper类。我在onCreate方法中实例化了ref,并将deleteUser方法中的内容放入活动中。同样的问题似乎是您没有实现实例状态保存。请参阅“Firebase数据库错误:权限被拒绝”。但为什么我要在从数据库中删除数据之前重新验证用户?
public class DBHelper {

private static DBHelper instance = null;
private FirebaseDatabase database;
private DatabaseReference ref;

private DBHelper(){
    database = FirebaseDatabase.getInstance();
}

public static DBHelper getInstance() {
    if(instance == null)
        instance = new DBHelper();

    return instance;
}

public void saveUserOnDB(String userId, String name, String email) {
    ref = database.getReference().child("users");
    ref.child(userId).setValue(new User(name, email));
}

public void deleteUser(String userId) {
    ref = database.getReference().child("users");
    ref.child(userId).setValue(null);
}
     {
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}