2

我試圖讓Google OAuth使用Firebase和React Native工作,似乎無法使所有內容一起工作。我正在使用NPM包react-native-google-signin來處理Google OAuth方面的事情,並且按預期工作。但我遇到了一個問題,即讓用戶通過Firebase進行身份驗證。無法使用Google OAuth身份驗證與React Native和Firebase配合使用

我已根據Web指南中的說明在我的Firebase實例上啓用了Google身份驗證。但是,當我嘗試使用本機OAuth軟件包中的idToken字段進行身份驗證時,我總是從Firebase獲得INVALID_CREDENTIALS錯誤。我正在使用Firebase Web API中的authWithOAuthToken方法。

我想我已經嘗試了使用Web/Android客戶端ID的Firebase配置以及OAuth包中的idTokenserverAuthCode字段的所有組合,但所有內容都以相同的錯誤結尾。有沒有人得到這個工作正確?

+0

你有什麼消息嗎? –

回答

2

這是我做到了我的應用程序:

import {GoogleSignin} from 'react-native-google-signin'; 

const KEYS = { 
    // ... // ios and web keys (i'm loading them from my server) 
} 

login() { 
    GoogleSignin.hasPlayServices({ autoResolve: true }) 
    .then(() => { 
     GoogleSignin.configure(KEYS) 
     .then(() => { 
      GoogleSignin.signIn() 
      .then(this.onGoogleLoginSuccess) 
      .catch(error=>{}) 
      .done(); 
     }); 
    }) 
    .catch((err) => { 
    console.log("Play services error", err.code, err.message); 
    }) 
} 

onGoogleLoginSuccess(user) { 
    var token = user.idToken; 
    var provider = firebase.auth.GoogleAuthProvider; 
    var credential = provider.credential(token); 
    firebase.auth().signInWithCredential(credential) 
    .then((data)=>console.log('SUCCESS', data)) 
    .catch((error)=>console.log('ERROR', error)); 
} 

點是使用signInWithCredential()方法。參考:https://firebase.google.com/docs/reference/js/firebase.auth.Auth#signInWithCredential

+0

你能告訴應該打印在'.then((data)=> console.log('SUCCESS',data)')上嗎? – Rai

相關問題