【问题标题】:delete() does not work sometimesdelete() 有时不起作用
【发布时间】:2017-04-03 05:54:09
【问题描述】:

我正在我的应用程序中设置帐户停用活动,但 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() 方法都可以正常工作...但是它离开了用户在身份验证选项卡中取消删除...他们的电子邮件仍然存在。

非常感谢!

【问题讨论】:

标签: android firebase firebase-realtime-database firebase-authentication


【解决方案1】:

尝试设置您的意图并在

中调用您的 startActivity()
FirebaseAuth.AuthStateListener() onAuthSChanged()

方法。

    // 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();
            }
        }
    };

【讨论】:

    猜你喜欢
    • 2018-07-19
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 2014-10-25
    • 2018-01-21
    • 2015-06-04
    • 2012-11-03
    • 1970-01-01
    相关资源
    最近更新 更多