Firebase Auth воссоздает пользователя даже когда я его удаляю - PullRequest
0 голосов
/ 18 октября 2019

Таким образом, в основном я пытаюсь работать с функцией выхода из системы, когда пользователь отправляется в Start Activity, если он / она не вошел в систему. Проблема заключается в том, что я удаляю пользователя из базы данных Firebase Auth и Realtime, а затем выписываюсь из системы. Он перенаправляет меня на MainActivity, но снова создает пользователя с таким идентификатором. Мне нужно знать, почему мое приложение не очищает все переменные и идентификаторы, связанные, когда пользователь выходит из системы. То же самое происходит, если пользователь выходит из системы, а затем запись удаляется из базы данных, когда приложение помещается в фоновом режиме. Метод onStop создает пользователя с этим идентификатором и онлайн-полем. Мой вопрос заключается в том, как удалить связанные переменные / идентификаторы, когда пользователь выходит из системы.

Мой код для выхода из системы:

@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();

            }


            }


    }); 

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...