0

我设立一个账户停用活动在我的应用程序,但user.delete()方法有时不工作...删除()不工作有时

,它的作品有时和所做的其实不是其他时间真的混淆......如果这是一个逻辑错误,它不应该一直工作正确吗?

这是代码,我有

deactivateAccount.setOnClickListener(new View.OnClickListener() { 
    final FirebaseUser user = mAuth.getCurrentUser(); 

    @Override 
    public void onClick(View view) { 
     deletePosts(); 
     deleteComments(); 
     deleteLikes(); 
     deleteUser(); 
     user.delete().addOnCompleteListener(new OnCompleteListener<Void>() { 
      @Override 
      public void onComplete(@NonNull Task<Void> task) { 

       Toast.makeText(DeactivateAccount.this, "You account has been deactivated",Toast.LENGTH_LONG).show(); 
       Intent loginIntent = new Intent (DeactivateAccount.this, LoginActivity.class); 
       startActivity(loginIntent); 

      } 

     }); 


    } 

没有错误,所以我不知道如何调试这个问题,以及...但deletePosts(),deleteComments(),deleteLikes() ,和deleteUser()方法都可以完美地工作......但是它使用户在身份验证选项卡中取消了删除...他们的电子邮件仍然存在。

非常感谢!

+0

尝试检查完成的任务是否为成功(),如果没有,则为log getException()。 https://developers.google.com/android/reference/com/google/android/gms/tasks/Task.html#isSuccessful() –

回答

0

尝试在

FirebaseAuth.AuthStateListener() onAuthSChanged() 

方法设置你的意图,并打电话给你startActivity()。

// This listener will be called when there is change in FireBase user session 
    FirebaseAuth.AuthStateListener authListener = new FirebaseAuth.AuthStateListener() { 
     @Override 
     public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 
      FirebaseUser user = firebaseAuth.getCurrentUser(); 
      if (user == null) { 
       // user auth state is changed - user is null 
       // launch login activity 
       startActivity(new Intent(DeactivateAccount.this, LoginActivity.class)); 
       finish(); 
      } 
     } 
    };