使用 Android AccountManager 的 Firebase 身份验证
Firebase authentication using Android AccountManager
我想使用 Firebase 构建一个 Android 应用程序。 Firebase 为登录屏幕提供演示代码 https://github.com/firebase/firebase-login-demo-android .
但是我希望用户能够使用用户已经在 Android 的集中式帐户管理器中输入的帐户信息,而不是让用户输入他们的帐户信息.
我在 https://developer.android.com/reference/android/accounts/AccountManager.html and the Firebase android authentication guide at https://www.firebase.com/docs/android/guide/user-auth.html 看过 AccountManager
对象的文档,但我太菜鸟了,不知道如何将它们放在一起。
任何 advice/pointers/sample 代码将不胜感激。或者让我知道我是否找错树了。
这里是 Firebase 工程师,
这是一种完全合法的方式——过去有很多人选择集成它。
简短的回答是它需要两个步骤:
- 从 AccountManager 获取所需供应商的适当 credential/token
- 使用 credential/token 进行 Firebase 身份验证。
看起来像 this is a good resource for the first step (learning about AccountManager). Then in the doCoolAuthenticatedStuff() you would follow our typical auth flow:
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,我们使用 'email' 范围,但每个提供商都会有所不同。
我在 iOS 世界中有一个 example of something similar(使用 ACAccountStore 登录 Twitter,这与 Android AccountManager 非常相似),如果流程有帮助的话。
虽然这听起来不错 recipe/gist,所以我会看看我能做些什么!
我想使用 Firebase 构建一个 Android 应用程序。 Firebase 为登录屏幕提供演示代码 https://github.com/firebase/firebase-login-demo-android .
但是我希望用户能够使用用户已经在 Android 的集中式帐户管理器中输入的帐户信息,而不是让用户输入他们的帐户信息.
我在 https://developer.android.com/reference/android/accounts/AccountManager.html and the Firebase android authentication guide at https://www.firebase.com/docs/android/guide/user-auth.html 看过 AccountManager
对象的文档,但我太菜鸟了,不知道如何将它们放在一起。
任何 advice/pointers/sample 代码将不胜感激。或者让我知道我是否找错树了。
这里是 Firebase 工程师,
这是一种完全合法的方式——过去有很多人选择集成它。
简短的回答是它需要两个步骤:
- 从 AccountManager 获取所需供应商的适当 credential/token
- 使用 credential/token 进行 Firebase 身份验证。
看起来像 this is a good resource for the first step (learning about AccountManager). Then in the doCoolAuthenticatedStuff() you would follow our typical auth flow:
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,我们使用 'email' 范围,但每个提供商都会有所不同。
我在 iOS 世界中有一个 example of something similar(使用 ACAccountStore 登录 Twitter,这与 Android AccountManager 非常相似),如果流程有帮助的话。
虽然这听起来不错 recipe/gist,所以我会看看我能做些什么!