android - 仅允许经过身份验证的用户在 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 框架中工作。有没有更好的方法可以让用户在不重复此代码的情况下进行身份验证?
解决方案
您可以拥有一个通用的抽象基础活动,其中包含您的所有活动都可以扩展的身份验证检查。这将确保您在一个地方进行身份验证检查。
推荐阅读
- html - 如何创建没有网格或 flexbox 的网格样式布局?
- css - CSS 网格特定布局
- javascript - 无法从 API 获得正确响应
- javascript - 如何使用补间动画在 Phaser 3 中为线条缩放设置动画?
- javascript - 类构造函数 Object3D 不能在 new THREE.CSS2DObject 处没有“new”的情况下被调用
- python - AWS API GW + Lambda 烧瓶
- javascript - 水平居中对齐
- java - 如何在 Apache NetBeans IDE 上创建 jar 文件
- c# - 查询列表并将 Id 与登录的 userId 进行比较
- java - JRE 忽略 TLSv1.1 首选项