首页 > 解决方案 > 仅允许经过身份验证的用户在 Android 中使用 Firebase 身份验证访问任何活动

问题描述

我正在使用 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 框架中工作。有没有更好的方法可以让用户在不重复此代码的情况下进行身份验证?

标签: androiddesign-patternsfirebase-authentication

解决方案


您可以拥有一个通用的抽象基础活动,其中包含您的所有活动都可以扩展的身份验证检查。这将确保您在一个地方进行身份验证检查。


推荐阅读