android - Firebase 对特定活动的第二次用户身份验证
问题描述
在我的应用程序中,用户使用 firebase 进行注册和身份验证。只有经过身份验证的用户才能访问应用程序中的所有活动。但是在应用程序内部,有一个活动(ActivityB)是基于用户的数据。此活动再次受到电子邮件和密码登录的限制(以便未安装该应用程序的人可以从其他用户那里检查此活动)。
假设 user1 在应用程序上注册并通过 firebase 进行身份验证。他将在整个应用程序中进行身份验证。当user2访问ActivityB时,他可以访问自己的数据。但是当他注销时,我需要像以前一样自动对 user1 进行身份验证。
我怎样才能做到这一点?
即使 User1/user2 从 ActivityB 注销,用户也会从整个 Firebase 身份验证中注销。
我给的只是注销命令。但它不起作用
public void signout (View v)
{
auth.signOut();
Intent i = new Intent(this,ActivityB.class);
startActivity(i);
}
解决方案
听起来您希望两个用户在您的应用程序中登录到 Firebase 身份验证。这不是一种常见的情况,因此您必须做一些跑腿工作才能使其正常工作。
FirebaseAuth
要意识到的最重要的事情是每个实例只能有一个用户登录。因此,要允许两个用户登录,您需要创建两个FirebaseAuth
实例。
您通常会FirebaseAuth
使用FirebaseAuth.getInstance()
. 要获取辅助FirebaseAuth
实例,请按照在单个应用程序中设置多个项目的说明进行操作。您可以使用与默认FirebaseApp
实例相同的设置,但您必须在此处的代码中指定它们。
所以它看起来像:
FirebaseOptions options = new FirebaseOptions.Builder()
.setProjectId("my-firebase-project")
.setApplicationId("1:27992087142:android:ce3b6448250083d1")
.setApiKey("AIzaSyADUe90ULnQDuGShD9W23RDP0xmeDc6Mvw")
// setDatabaseURL(...)
// setStorageBucket(...)
.build();
FirebaseApp secondary = FirebaseApp.initializeApp(this /* Context */, options, "secondary");
然后使用以下命令登录该FirebaseApp
实例:
FirebaseAuth.getInstance(secondary).signIn...
另见:
推荐阅读
- swift - 是否可以选择 MGLPolyLines?- 斯威夫特,地图框
- xamarin.forms - 在 Xamarin Shell 中实现登录页面的正确方法是什么?
- expect - 为什么我的期望脚本过早退出?
- php - 如何使用 PHP Curl 或 Guzzel 客户端使用动态用户代理标头
- angular - 角度中的布尔玛日历组件未显示
- sql-server - SQL Server:我需要对文章进行最后的 2 次更改
- c# - Nvidia Flex:为什么我不能在 FlexArray Actor 中设置粒子数?(统一)
- javascript - javascript函数返回一个promise,并且promise用于solidity函数,它给出了无效参数的错误
- java - 我们可以使用哪种微服务架构来深入了解使用无 SQL 数据库的巨大单体应用程序?
- memory-management - 由于“无效参数”,Cublas 编程程序命中 cudaErrorInvalidValue