仅允许通过身份验证的用户使用Android中的Firebase身份验证访问任何活动

时间:2019-12-20 15:45:54

标签: android design-patterns firebase-authentication

我正在使用Firebase身份验证开发应用程序。在我的应用中,所有活动仅应由经过身份验证的用户访问。为此,我在所有活动中都包含以下代码部分:

firebaseAuthStateListener = new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                // If user is logged out, bring him to LoginActivity
                final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
                if(user == null){
                    Intent intent = new Intent(ConnectionsActivity.this, LoginActivity.class);
                    startActivity(intent);
                    finish();
                }
            }
        };

我意识到这不是一个好方法,因为我的代码已不再 DRY ,而且我不得不将这部分复制粘贴到我的所有活动中。 我正在考虑实现一个单例类,但是我不确定它在Android框架中如何工作。 有没有更好的方法可以使用户通过身份验证而无需重复此代码?

1 个答案:

答案 0 :(得分:0)

您可以通过身份验证检查来拥有一个通用的抽象基础活动,以确保您的所有活动都可以扩展。这样可以确保将身份验证检查放在一个地方。