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