【问题标题】:Firebase 2nd user authentication for a specific activityFirebase 对特定活动的第二次用户身份验证
【发布时间】:2020-10-26 10:08:36
【问题描述】:

在我的应用程序中,用户使用 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);
    }

【问题讨论】:

标签: android firebase firebase-authentication


【解决方案1】:

听起来您希望两个用户在您的应用内登录到 Firebase 身份验证。这不是一种常见的情况,因此您必须做一些跑腿工作才能使其正常工作。

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

您通常会使用FirebaseAuth.getInstance() 创建一个默认的FirebaseAuth 实例。要获取第二个 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...

另见:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 2019-08-26
    • 2011-11-30
    相关资源
    最近更新 更多