使用Android AccountManager进行Firebase身份验证

使用Android AccountManager进行Firebase身份验证,android,firebase,firebase-authentication,accountmanager,Android,Firebase,Firebase Authentication,Accountmanager,我想使用Firebase构建一个Android应用程序。Firebase为登录屏幕提供演示代码 但是,我希望用户能够使用用户已经在Android的集中式帐户管理器中输入的帐户信息,而不是在他们的帐户信息中输入用户 我已经看过了位于的AccountManager对象的文档和位于的Firebase android身份验证指南,但是我太笨了,不知道如何把它们放在一起 如有任何建议/提示/示例代码,将不胜感激。或者如果我找错了树,请告诉我。这里是Firebase工程师 这是一种完全合法的方式——过去有很

我想使用Firebase构建一个Android应用程序。Firebase为登录屏幕提供演示代码

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

我已经看过了位于的
AccountManager
对象的文档和位于的Firebase android身份验证指南,但是我太笨了,不知道如何把它们放在一起


如有任何建议/提示/示例代码,将不胜感激。或者如果我找错了树,请告诉我。

这里是Firebase工程师

这是一种完全合法的方式——过去有很多人选择将其集成

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

  • 从AccountManager获取所需提供程序的适当凭据/令牌
  • 使用该凭据/令牌向Firebase auth进行身份验证
看起来像(学习AccountManager)。然后在doCoolAuthenticatedStuff()中,您将遵循以下步骤:

Firebase ref=新的Firebase(“https://.firebaseio.com");
ref.authWithOAuthToken(“google”),new Firebase.AuthResultHandler(){
@凌驾
已验证的公用void(AuthData AuthData){
//Google用户现在已通过Firebase应用程序的身份验证
}
@凌驾
AuthenticationError上的公共无效(FirebaseError FirebaseError){
//有一个错误
}
});
对于谷歌,我们使用“电子邮件”范围,但每个提供商都会有所不同

我有一个iOS世界(使用ACAccountStore登录Twitter,这非常类似于Android AccountManager),如果流量有帮助的话


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

谢谢你的回答。我还没有真正做到这一点,但这似乎是一个很好的起点,所以接受这一点。不过,如果您能提供一份食谱/要点,我们将不胜感激!随着谷歌对Firebase的重新打包,这是一个类似的过程吗?我想使用Firebase auth,但我并不打算放弃帐户管理器。您可以将OAuth令牌传递到新的Firebase身份验证中,因此同样的一般过程也应该适用。如果您正在设置一个合适的SyncManager,您可能需要帐户管理器,我希望Firebase auth能够正确支持这一点。
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
    }
});