Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法使用React Native和Firebase获得Google OAuth身份验证_Android_Firebase_React Native_Google Oauth_Firebase Authentication - Fatal编程技术网

Android 无法使用React Native和Firebase获得Google OAuth身份验证

Android 无法使用React Native和Firebase获得Google OAuth身份验证,android,firebase,react-native,google-oauth,firebase-authentication,Android,Firebase,React Native,Google Oauth,Firebase Authentication,我正试图让Google OAuth与Firebase一起工作,并以本地方式进行反应,但似乎无法让所有东西都协同工作。我正在使用NPM包来处理GoogleOAuth方面的事情,这正如期工作。但是,我在使用Firebase对用户进行身份验证时遇到了一个问题 我已经根据Web指南中的说明在Firebase实例上启用了Google身份验证。但是,当我尝试使用本机OAuth包中的idToken字段进行身份验证时,我总是从Firebase收到INVALID\u CREDENTIALS错误。我正在使用Fire

我正试图让Google OAuth与Firebase一起工作,并以本地方式进行反应,但似乎无法让所有东西都协同工作。我正在使用NPM包来处理GoogleOAuth方面的事情,这正如期工作。但是,我在使用Firebase对用户进行身份验证时遇到了一个问题

我已经根据Web指南中的说明在Firebase实例上启用了Google身份验证。但是,当我尝试使用本机OAuth包中的
idToken
字段进行身份验证时,我总是从Firebase收到
INVALID\u CREDENTIALS
错误。我正在使用Firebase Web API中的方法


我想我已经尝试过在Firebase配置中使用Web/Android客户端ID和OAuth包中的
idToken
serverAuthCode
字段的各种组合,但都以相同的错误结束。有人能让它正常工作吗

这是我为我的应用程序所做的:

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()
方法。参考资料:

你有什么消息吗?你能告诉我应该在
上打印什么吗?然后((数据)=>console.log('SUCCESS',data))