错误:DEVELOPER_ERROR当尝试在React Native中使用GoogleSignIn时

fae0ux8s  于 2023-05-18  发布在  React
关注(0)|答案(4)|浏览(300)

我在Firebase上启用了Google SignIn,还添加了SHA-1密钥。我的应用程序编译正常,但当我按下登录按钮并选择一个Google帐户登录时,我得到了Possible Unhandled Promise Rejection (id: 0): Error: DEVELOPER_ERROR
当我尝试使用匿名登录时,我没有得到任何错误。我在Android上,我有所有模块的最新版本。以下是完整的错误代码:

[Fri Oct 23 2020 18:08:26.174]  WARN     Possible Unhandled Promise Rejection (id: 0):
Error: DEVELOPER_ERROR
promiseMethodWrapper@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:2242:45
signIn$@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:102709:72
tryCatch@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:24976:23
invoke@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:25149:32
tryCatch@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:24976:23
invoke@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:25049:30
http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:25059:21
tryCallOne@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:27056:16
http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:27157:27
_callTimer@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:30596:17
_callImmediatesPass@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:30635:17
callImmediates@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:30852:33
__callImmediates@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:2736:35
http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:2522:34
__guard@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:2719:15
flushedQueue@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:2521:21
flushedQueue@[native code]
callFunctionReturnFlushedQueue@[native code]

这是我的App.js

import React, {useState, useEffect} from 'react';
import {View, Text, Button} from 'react-native';

import auth from '@react-native-firebase/auth';
import firebase from '@react-native-firebase/app';
import {GoogleSignin} from '@react-native-community/google-signin';

const firebaseConfig = {
  apiKey: 'xxxx',
  appId: 'xxxx',
  databaseURL: 'https://xxxx.firebaseio.com',
  messagingSenderId: 'xxxx',
  projectId: 'xxxx',
  storageBucket: 'xxxx.appspot.com',
};

if (!firebase.apps.length) {
  firebase.initializeApp(firebaseConfig);
}

const App = () => {
  useEffect(() => {
    // initialize the Google SDK
    GoogleSignin.configure({
      scopes: ['email'],
      webClientId:
        'xxxx.apps.googleusercontent.com',
      offlineAccess: true,
    });
  }, []);

  const googleLogin = async () => {
    // Get the users ID token

    const {idToken} = await GoogleSignin.signIn();
    // Create a Google credential with the token
    const googleCredential = auth.GoogleAuthProvider.credential(idToken);

    // Sign-in the user with the credential
    return auth().signInWithCredential(googleCredential);
  };

  return (
    <View>
      <Button title="Login" onPress={() => googleLogin()}></Button>
    </View>
  );
};

export default App;
axkjgtzd

axkjgtzd1#

您在firebase中的SHA-1密钥与应用的SHA-1密钥不匹配。要获得正确的SHA-1密钥,请在控制台中使用应用程序路径执行命令:
keytool -list -v -keystore ./android/app/debug.keystore -alias androiddebugkey -storepass android -keypass android

g6ll5ycj

g6ll5ycj2#

这种情况有两个原因:
1.缺少SHA-1密钥,这已经有很多答案了
1.您的SHA-1密钥在许多项目中使用,它们相互冲突。尝试删除SHA-1密钥,然后重新添加,然后下载json文件并再次运行。

pinkon5k

pinkon5k3#

我的错误是我取错了变体注意有6个键,3个相似,其他3个也相似。在将所有变体添加到Firebase SHA-1之后,它工作了。

in YourProject/android
run:
./gradlew :app:signingReport

如果您运行./gradlew signingReport,它会打印许多签名报告,您可能不小心获取了不是您的sha-1 id
看到有
任务:react-native-firebase_auth:signingReport
但你可能需要
任务:app:signingReport
它打印如下:

> Task :app:signingReport
Variant: debug
Config: debug
Store: C:\Users\user\Documents\projects\chatgptfriends\android\app\debug.keystore
Alias: androiddebugkey
MD5: 20:F4:61:48...
SHA1: 5E:8F:16:06:...
SHA-256: FA:C6:17:45:DC:09:03:78:...
Valid until: Wednesday, 1 May 2052
----------
Variant: release
Config: debug
Store: C:\Users\user\Documents\projects\chatgptfriends\android\app\debug.keystore
Alias: androiddebugkey
MD5: 20:F4:61:48:...
SHA1: 5E:8F:16:06:...
SHA-256: FA:C6:17:45:DC:...
Valid until: Wednesday, 1 May 2052
----------
Variant: debugAndroidTest
Config: debug
Store: C:\Users\user\Documents\projects\chatgptfriends\android\app\debug.keystore
Alias: androiddebugkey
MD5: 20:F4:61:48:...
SHA1: 5E:8F:16:06:...
SHA-256: FA:C6:17:45:DC:...
Valid until: Wednesday, 1 May 2052
----------

> Task :react-native-firebase_app:signingReport
Variant: debugAndroidTest
Config: debug
Store: C:\Users\user\.android\debug.keystore
Alias: AndroidDebugKey
MD5: D1:EA:B0:E0...
SHA1: 0B:76:BB:09...
SHA-256: 60:FE:E2:...
Valid until: Monday, 27 January 2053
----------

> Task :react-native-firebase_auth:signingReport
Variant: debugAndroidTest
Config: debug
Store: C:\Users\user\.android\debug.keystore
Alias: AndroidDebugKey
MD5: D1:EA:B0:E0...
SHA1: 0B:76:BB:09...
SHA-256: 60:FE:E2:...
Valid until: Monday, 27 January 2053
----------

> Task :react-native-firebase_firestore:signingReport
Variant: debugAndroidTest
Config: debug
Store: C:\Users\user\.android\debug.keystore
Alias: AndroidDebugKey
MD5: D1:EA:B0:E0...
SHA1: 0B:76:BB:09...
SHA-256: 60:FE:E2:...
Valid until: Monday, 27 January 2053
----------

> Task :react-native-google-signin_google-signin:signingReport
Variant: debugAndroidTest
Config: debug
Store: C:\Users\user\.android\debug.keystore
Alias: AndroidDebugKey
MD5: D1:EA:B0:E0...
SHA1: 0B:76:BB:09...
SHA-256: 60:FE:E2:...
Valid until: Monday, 27 January 2053
----------
8hhllhi2

8hhllhi24#

SHA-1密钥当我们使用gradlew signingReport命令时,会创建许多类型的varient登录报告。所以使用与Varient相关的SHA-1密钥:relese

相关问题