针对特定活动的Firebase 2nd用户身份验证

时间:2020-07-06 09:49:10

标签: android firebase firebase-authentication

在我的应用中,使用Firebase注册并验证了用户。该应用程序中的所有活动仅适用于经过身份验证的用户。但是在应用程序内部,有一个活动(ActivityB)是基于用户的数据。此活动再次受到电子邮件和密码登录的限制(以便未安装该应用程序的人可以从其他用户处检查此活动)。

假设user1已在应用程序上注册并由firebase进行了身份验证。他将在整个应用程序中通过身份验证。 当user2访问ActivityB时,他可以访问自己的数据。但是当他注销时,我需要像以前一样自动对user1进行身份验证。

我该怎么做?

即使从ActivityB中退出User1 / user2,该用户也将从整个Firebase身份验证中退出。

我给的只是退出命令。但这不起作用

public void signout (View v)
    {
        auth.signOut();
        Intent i = new Intent(this,ActivityB.class);
        startActivity(i);
    }

1 个答案:

答案 0 :(得分:1)

听起来您想让两个用户在您的应用程序中登录Firebase身份验证。这不是常见的情况,因此您必须花点时间才能使其正常工作。

要实现的最重要的事情是,每个FirebaseAuth instance只能登录一个用户。因此,要允许两个用户登录,您需要创建两个FirebaseAuth实例。

通常,您将使用FirebaseAuth创建一个默认的FirebaseAuth.getInstance()实例。要获取辅助FirebaseAuth实例,请遵循setting up multiple projects in a single application上的说明。您可以使用与默认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...

另请参阅: