首页 > 解决方案 > 反应原生谷歌登录错误取消

问题描述

当我按下谷歌登录按钮控制台日志时,它显示错误4:取消我不知道是什么问题,谁能告诉我这个问题?下面的 app.js 代码将在显示被取消的控制台日志错误 4 中一一显示控制台错误。

我的 MainApplication.java

import co.apptailor.googlesignin.RNGoogleSigninPackage;
        @Override
        protected List<ReactPackage> getPackages() {
          return Arrays.<ReactPackage>asList(
              new MainReactPackage(),
                new RNGoogleSigninPackage()
          );
        }
 code:
Code i used in android /app/build.gradle
android/app/build.gradle
dependencies {
        implementation(project(":react-native-google-signin")){
            exclude group: "com.google.android.gms" 
        }
        implementation 'com.google.android.gms:play-services-auth:15.0.0' 
        implementation fileTree(dir: "libs", include: ["*.jar"])
        implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
        implementation "com.facebook.react:react-native:+"  
    }


    task copyDownloadableDepsToLibs(type: Copy) {
        from configurations.compile
        into 'libs'
    }

我在 android /build.gradle 中使用的代码

android/build.gradle buildscript {

    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.4'
        classpath 'com.google.gms:google-services:3.2.1'   
    }
}

allprojects {
    repositories {
        mavenLocal()
          maven {url "https://maven.google.com"} 
        jcenter()
        google()
        maven {

            url "$rootDir/../node_modules/react-native/android"
        }

    }
}


task wrapper(type: Wrapper) {
    gradleVersion = '4.4'
    distributionUrl = distributionUrl.replace("bin", "all")
}

APP.js

import { GoogleSignin, GoogleSigninButton,statusCodes } from 'react-native-google-signin';
export default class App extends Component {
  componentWillMount(){
    GoogleSignin.configure({
      scopes: ['https://www.googleapis.com/auth/drive.readonly'], 
      webClientId: '***', 

    });
  }

  signIn = async () => {
    try {
      await GoogleSignin.hasPlayServices();
      const userInfo = await GoogleSignin.signIn();
      this.setState({ userInfo });
      console.log(userInfo);
    } catch (error) {
      if (error.code === statusCodes.SIGN_IN_CANCELLED) {
        console.log('1'+error);
        // user cancelled the login flow
      } else if (error.code === statusCodes.IN_PROGRESS) {
        console.log('2'+error);

        // operation (f.e. sign in) is in progress already
      } else if (error.code === statusCodes.PLAY_SERVICES_NOT_AVAILABLE) {
        console.log('3'+error);

        // play services not available or outdated
      } else {
        console.log('4'+error);

        // some other error happened
      }
    }
  };

标签: androidreact-nativereact-native-androidgoogle-signin

解决方案


推荐阅读