如何解决错误:尝试在React Native中使用GoogleSignIn时出现DEVELOPER_ERROR
我已经在Firebase上启用了Google登录,并且还添加了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;
解决方法
您在 firebase 中的 SHA-1 密钥与您应用的 SHA-1 密钥不匹配。要获得正确的 SHA-1 密钥,请在控制台中使用您的应用程序路径执行命令:
title id
0 A,home 1
0 sad,Kar 1
1 car 2
1 figth,Sumer 2
2 light 3
2 daad 3
2 Hi 3
问题是 SHA-1 密钥。当我们使用 gradlew signingReport
命令时,会创建多种类型的 varient
登录报告。所以使用与 Varient : relese 相关的 SHA-1 密钥。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。