DEVELOPER_ERROR 错误代码 10 - Firebase google login in react native

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)

eya*_*oli 9

常见的陷阱DEVELOPER ERROR

  1. 很多人都错过了这个!但是您应该在 OAuth 中配置Web 客户端Android/iOS 客户端(只需填写 Web 客户端中所需的内容)
  2. Android 客户端中配置的 SHA-1 错误 - 在调试/开发、发布捆绑包/APK 以及使用 Play 商店发布捆绑包/APK 时(有一个选项可以让 Google 管理您的发布密钥),您拥有完全不同的密钥,大多数人只是接受它 - 这使您的签名与众不同,您可以在 Play 管理中心的“应用程序完整性”/“应用程序签名”下找到它)
  3. 未在 Play 管理中心中设置 OAuth 同意屏幕
  4. 在代码中使用您的 Web 客户端 ID(不是 Android/iOS 客户端)

更让人困惑的是,大多数解决方案都是本地使用的,而不是 React Native,不同之处在于 RN 库通常涉及使用 Web API(它们在 JS 中更可用)。


Raj*_*sit 7

您需要从 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()

  1. SHA-1 无效
  2. 无效的 Web 客户端 ID

确保您的 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 控制台中手动创建一个