因此,基本上,我正在尝试登录注销功能,如果用户未登录,则将其发送到Start Activity。问题是当我从Firebase Auth和Realtime数据库Manualy中删除用户,然后注销时。它将我重定向到MainActivity,但再次创建了具有该ID的用户。我需要知道为什么我的应用程序在用户注销时没有清除所有关联的变量和ID。如果用户退出登录,然后将App置于后台onStop方法创建具有该ID和Online字段的用户,则该条目将从数据库中删除。我的问题是如何在用户登录后删除关联的变量/ ID。
我的退出代码是:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
if(item.getItemId() == R.id.main_logout_btn){
mUserRef.child("online").setValue(ServerValue.TIMESTAMP);
FirebaseAuth.getInstance().signOut();
sendToStart();
}
}
我也正在使用LifeCycleEventListner这样:
ProcessLifecycleOwner.get().getLifecycle().addObserver(new LifecycleObserver() {
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void onStop(){
// FirebaseUser currentUser = mAuth.getCurrentUser();
if(mCurrentUserId != null && mUserRef.child("online")!= null) {
mUserRef.child("online").setValue(ServerValue.TIMESTAMP);
}
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onStart(){
FirebaseUser currentUser = mAuth.getCurrentUser();
if(currentUser != null && currentUser.isEmailVerified() ){
mUserRef = FirebaseDatabase.getInstance().getReference().child("Users").child(currentUser.getUid());
mUserRef.child("online").setValue("true");
} else {
sendToStart();
}
}
});
谢谢。