Sam*_*ikh 0 android native firebase reactjs react-native
我正在尝试在我的本机应用程序中实现 Firebase Google 身份验证。但得到 DEVELOPER_ERROR。错误代码 10。
它工作一次,然后当我在一周后尝试再次运行它时,我遇到了同样的错误。
到目前为止我尝试过的。1. 检查 Web Client ID 是否正确。2. Debug Keystore 也正确检查了将近20 次。3. 删除 Firebase 项目并创建一个新项目。
componentDidMount = async () => {
// Google Configure
await GoogleSignin.configure({
webClientId: 'xxxxxxxxxxxxxx.apps.googleusercontent.com',
offlineAccess: true
})
}
Run Code Online (Sandbox Code Playgroud)
firebaseSignIn = async () => {
try {
const data = await GoogleSignin.signIn();
// create a new firebase credential with the token
const credential = firebase.auth.GoogleAuthProvider.credential(data.idToken, data.accessToken)
// login with credential
const currentUser = await firebase.auth().signInWithCredential(credential);
//Update Data in Firebase
this.props.updateAuth(this.state.first_install, this.state.first_open)
} catch (e) {
console.log(e.code)
}
}
Run Code Online (Sandbox Code Playgroud)
常见的陷阱DEVELOPER ERROR:
更让人困惑的是,大多数解决方案都是本地使用的,而不是 React Native,不同之处在于 RN 库通常涉及使用 Web API(它们在 JS 中更可用)。
您需要从 client_type": 3 中获取 client_id 作为 Web 客户端 ID。type 3 表示 Web 客户端 ID。
{
"client_id": "892474276945-9lj7c1fjnp33r6e88toad2jfo0l3lmb4.apps.googleusercontent.com",
"client_type": 3
}
Run Code Online (Sandbox Code Playgroud)
此外,您需要添加两个 SHA-1 密钥。一个是您使用的应用程序的发布密钥库,第二个是来自您的 Play 商店控制台(如果您的应用程序已上线)
进入 Firebase 控制台
小智 5
希望这对某人有帮助。
正如我所经历的,DEVELOPPER_ERROR code 10如果您正确完成了编码部分,可能会由于两个原因而发生。检查GoogleSignin.configure()
确保您的 SHA-1 正确。cd android gradlew signinReport这将输出每个密钥库的登录报告。如果您正在开发本机 Android 应用程序,您的密钥库位于~USER\.android\debug.keystore并且您的 React Native 密钥库位于PROJECT_DIR\android\app\debug.keystore(确保您拥有正确的 SHA-1)
通常,您可以从google-service.json位于 处获取 webClientId 的 id client>oauth_client>clientid。由于google-service.json包含 Firebase 项目中每个应用程序的详细信息,请确保您获得当前项目的正确客户端 ID。
如果此客户端 ID 不适合您。您需要从GCP Console获取 Web 客户端 ID 。如果 GCP 控制台没有任何Web 应用程序类型的OAuth 2.0 客户端 ID,只需在 firebase 控制台中添加一个 Web 应用程序,它就会为您创建一个 Web 应用程序类型 ID,或者您可以在 GCP 控制台中手动创建一个
| 归档时间: |
|
| 查看次数: |
5503 次 |
| 最近记录: |