当前位置: 首页 > 知识库问答 >
问题:

使用 Android 帐户管理器进行 Firebase 身份验证

陶超
2023-03-14

我想使用 Firebase 构建一个 Android 应用。Firebase 提供了登录屏幕 https://github.com/firebase/firebase-login-demo-android 的演示代码。

但是,我希望用户能够使用用户已经在Android的集中式帐户管理器中输入的帐户信息,而不是让用户输入他们的帐户信息。

我已经在 https://developer.android.com/reference/android/accounts/AccountManager.html 上看到了AccountManager对象的文档,在 https://www.firebase.com/docs/android/guide/user-auth.html 上看到了Firebase android身份验证指南的文档,但是我太菜鸟了,无法理解如何将它们放在一起。

任何建议/指针/示例代码将不胜感激。或者让我知道我是否吠错了树。

共有1个答案

后化
2023-03-14

这里的消防工程师,

这是一种完全合法的做法——过去我们有很多人选择将其整合。

简而言之,它需要两个步骤:

  • 为所需的提供者从AcCountManager获取适当的凭据/令牌
  • 使用该凭据/令牌对Firebase身份验证。

看起来这是第一步(了解AcCountManager)的一个很好的资源。然后在doCool说服力中,您将遵循我们典型的身份验证流程:

Firebase ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");
ref.authWithOAuthToken("google", "<OAuth Token>", new Firebase.AuthResultHandler() {
    @Override
    public void onAuthenticated(AuthData authData) {
        // the Google user is now authenticated with your Firebase app
    }
    @Override
    public void onAuthenticationError(FirebaseError firebaseError) {
        // there was an error
    }
});

对于 Google,我们使用“电子邮件”范围,但每个提供商都不同。

我在iOS世界中有一个类似的例子(使用ACAccountStore登录Twitter,这与Android AccountManager非常相似),如果流程有帮助的话。

这听起来像是一个很好的食谱/要点,所以我会看看我能做什么!

 类似资料:
  • 这是服务到服务身份验证中概述的规则的一个例外吗?该规则规定需要设置为接收服务的url(例如https://xxxxx.run.app)。和是一回事吗? 最后,除了使用googlecloudsdk(即imaging不存在)之外,是否还有其他方法使用用户帐户而不是服务帐户进行身份验证?

  • 我有一个带有AzureSQL后端的MS Access前端应用程序(accdb)。我目前正在使用SQL服务器身份验证,但我想使用某种活动目录。我没有本地广告,所以我最初考虑设置Azure广告。然而,我们的小团队已经在使用Office 365,据我所知,O365由Azure AD提供支持。 所以我的问题是,是否可以使用O365帐户(微软通常称之为“工作帐户”)来针对Azure SQL后端进行身份验证?

  • 我需要一些有关Azure API管理服务的帮助。 目前,我们有一个单页应用程序,它使用Azure上托管的两个后端服务(WebApi.NETCore)。为了对用户进行身份验证和授权,我们使用IdentityServer(也作为服务托管在Azure上)SubscriptionService。在这里,IdSrv对用户进行身份验证,并定义webapp可以访问哪些api。如果用户拥有给定API的权限,Sub

  • 我尝试在Azure门户上创建的O365应用程序上进行身份验证,但它没有按预期工作。 以下代码运行良好,但它使用的是登录/密码,Microsoft不推荐使用。(在此处找到https://github.com/jstedfast/MailKit/issues/989) 事实上,我希望能够使用tenanid、客户端机密和clientid进行身份验证,但没有交互模式(因为该应用程序是Windows服务)。

  • 我不知道我的代码或Firebase控制台有什么问题,但当我运行应用程序并单击提交按钮尝试创建一个帐户时,它会运行,我不知道为什么。 很抱歉对我的描述含糊不清,但如果有人能告诉我我做错了什么,我将非常感激。 } 错误消息

  • 将匿名帐户转换为永久帐户的文档指出了流程的3个步骤,但是步骤2似乎违反了步骤1。 当用户注册时,完成用户身份验证提供者的登录流程,直到(但不包括)调用其中一个身份验证提供者。用方法来表示。例如,获取用户的Google ID令牌、Facebook访问令牌或电子邮件地址和密码 获取新身份验证提供程序的身份验证凭据: