我在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;
4条答案
按热度按时间axkjgtzd1#
您在firebase中的SHA-1密钥与应用的SHA-1密钥不匹配。要获得正确的SHA-1密钥,请在控制台中使用应用程序路径执行命令:
keytool -list -v -keystore ./android/app/debug.keystore -alias androiddebugkey -storepass android -keypass android
g6ll5ycj2#
这种情况有两个原因:
1.缺少SHA-1密钥,这已经有很多答案了
1.您的SHA-1密钥在许多项目中使用,它们相互冲突。尝试删除SHA-1密钥,然后重新添加,然后下载json文件并再次运行。
pinkon5k3#
我的错误是我取错了变体注意有6个键,3个相似,其他3个也相似。在将所有变体添加到Firebase SHA-1之后,它工作了。
如果您运行./gradlew signingReport,它会打印许多签名报告,您可能不小心获取了不是您的sha-1 id
看到有
任务:react-native-firebase_auth:signingReport
但你可能需要
任务:app:signingReport
它打印如下:
8hhllhi24#
SHA-1密钥当我们使用
gradlew signingReport
命令时,会创建许多类型的varient
登录报告。所以使用与Varient相关的SHA-1密钥:relese。