Java 如何返回登录活动Firebase authlistener?

Java 如何返回登录活动Firebase authlistener?,java,android,authentication,firebase,Java,Android,Authentication,Firebase,我的主要/创业活动是我的重要活动,我包括 Firebase身份验证侦听器 mFirebase.addAuthStateListener(new Firebase.AuthStateListener() { @Override public void onAuthStateChanged(AuthData authData) { if (authData != null) { // go to auth

我的主要/创业活动是我的重要活动,我包括 Firebase身份验证侦听器

    mFirebase.addAuthStateListener(new Firebase.AuthStateListener() {
        @Override
        public void onAuthStateChanged(AuthData authData) {
            if (authData != null) {
                // go to auth activity
                // such as user logging in
            } else {
                if(!(this instanceof SignInActivity)){
                    // if i sign out in an auth activity
                    // i want to trigger this to go back to the SignIn Activity
                    Intent mIntent = new Intent(getApplicationContext(), SignInActivity.class);
                    mIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    startActivity(mIntent);
                    finish();
                    return;
                }
            }
        }
    });
在else语句中,if条件不起作用。我知道我不能在嵌套对象中使用
这个
。我尝试了一些其他的尝试,但我总是得到闪烁,我认为它在一个无限循环结束,因为条件总是满足。正确的方法是什么?

试试这个:

mFirebase.addAuthStateListener(new Firebase.AuthStateListener() {
    @Override
    public void onAuthStateChanged(AuthData authData) {
        if (authData != null) {
            // go to auth activity
            // such as user logging in
        } else {
            if(!(SignInActivity.this instanceof SignInActivity)){
                // if i sign out in an auth activity
                // i want to trigger this to go back to the SignIn Activity
                Intent mIntent = new Intent(getApplicationContext(), SignInActivity.class);
                mIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(mIntent);
                finish();
                return;
            }
        }
    }
});

这是否会导致MacActivity始终是SignenActivity的一个实例,因为它在SignenActivity中声明了?如果这里的想法只是在用户重新打开应用程序时检查用户是否登录,您不需要该else语句。如果用户未登录,您就无法执行任何操作。这是原因之一。如果用户在另一个活动中并且用户注销,我希望触发此操作。当点击“注销”按钮/链接时,我将取消对用户的授权,我希望这能抓住这种情况,并重定向到SignenActivity