2015-06-25 230 views
3

我想使用Firebase構建Android應用。 Firebase提供登錄屏幕https://github.com/firebase/firebase-login-demo-android的演示代碼。使用Android AccountManager的Firebase身份驗證

但我不希望用戶輸入他們的賬戶信息,而是希望用戶能夠使用用戶已經在Android集中賬戶管理器中輸入的賬戶信息。

我已經看到AccountManager對象的文檔在https://developer.android.com/reference/android/accounts/AccountManager.html和Firebase的Android身份驗證指南https://www.firebase.com/docs/android/guide/user-auth.html,但我太多了,不知道如何把它放在一起。

任何意見/指針/示例代碼將不勝感激。或者讓我知道,如果我吠叫錯了樹。

+0

https://github.com/jpventura/FirebaseAccountAuthenticator –

回答

1

這裏火力地堡的工程師,

這是這樣做的完全合法的方式 - 我們已經有一些人選擇這個過去整合。

簡短的回答是,它需要兩個步驟:

  • 獲取適當憑證/標記與從的AccountManager用於期望提供商
  • 與憑證/令牌火力AUTH進行身份驗證。

看起來像this is a good resource for the first step(瞭解AccountManager)。然後在doCoolAuthenticatedStuff(),你會遵循我們的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 
    } 
}); 

對於谷歌,我們使用「電子郵件」範圍,但每個供應商將是不同的。

我在iOS世界中有一個example of something similar(使用ACAccountStore進行Twitter登錄,這非常類似於Android AccountManager),如果流程有幫助的話。

這聽起來像它會成爲一個很好的食譜/要點,所以我會看看我能做什麼!

+0

感謝您的回答。還沒有真正做到,但這似乎是一個很好的起點,所以接受這一點。但仍然是一個配方/要點將不勝感激! – ronen

+0

隨着新的谷歌重新包裝Firebase,這是一個類似的過程? 我想使用Firebase身份驗證,但我不會出售以放棄客戶經理。 –

+0

您可以將OAuth令牌傳遞給新的Firebase身份驗證,因此應該使用相同的一般過程。 –