2015-12-15 37 views

回答

6

這是FirebaseUI 0.3 uses to build the sign-in options

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
    .requestIdToken(googleClientId) 
    .requestEmail() 
    .build(); 

哪裏googleClientId是在Firebase documentation for Google authentication描述的客戶端ID。最重要的是需要注意的是,儘管您正在構建Android應用程序,但您仍需要創建網絡應用程序

但是:這幾天你不需要指定一個id令牌。在FirebaseUI 0.3.1,我們將切換到this用於構建登錄選項:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
    .requestEmail() 
    .build(); 

少了一個配置值操心。 :-)

+1

是否'requestIdToken(ID)'甚至工作?我不斷收到無效的證書異常。現在我使用'GoogleAuthUtil'從上面提到的'GoogleSignInResult'中使用電子郵件地址獲取OAuth令牌。這是正確的方法嗎? - 您沒有提及'GoogleAuthUtil' ... – cybergen

+1

java.lang.IllegalArgumentException:必須指定一個idToken或accessToken。 –

+0

我試着刪除requestIdToken,但仍然無法正常工作。它需要它! – jonney

14

爲了避免java.lang.IllegalArgumentException: Must specify an idToken or an accessToken,使用

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
    .requestIdToken(googleClientId) 
    .requestEmail() 
    .build(); 

[找到googleClientId - 這裏][1]

+2

這正是我所期待的。 Google文檔仍然引用了Google API控制檯,如果您使用Firebase,則不推薦使用該控制檯... – Forke

+0

這對我有很大幫助。我無法在任何地方找到ClientID。像現在的魅力一樣工作,謝謝!截圖將是值得把你的答案包裝鏈接斷裂! @霍亞 – Garth

+0

這是正確的答案! –