Firebase不断发现在服务器配置中抛出OAuth2客户端ID

时间:2016-06-20 12:09:46

标签: java android firebase firebase-authentication

我正在尝试使用Firebase将我的Google用户登录到我的应用中,但每次使用以下方法时,都会收到此错误:An internal error has occured. [ OAuth2 client id in server configuration is not found. ]。我已经从开发人员控制台获取了我的客户端ID密钥,我使用的是Web客户端ID,而不是我的请求令牌中的Android。有什么想法吗?

这是我的代码:

  private void firebaseAuthWithGoogle(final GoogleSignInAccount acct) {

        final AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
        mAuth.signInWithCredential(credential)
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {


                        if (!task.isSuccessful()) {

                            Toast.makeText(Login.this, "Oops, something went wrong with your login.  Please try again.",
                                    Toast.LENGTH_SHORT).show();

                        }

                        else{


                            Intent i = new Intent(Login.this, FindOpp.class);
                            startActivity(i);
                        }

                    }
                });
    }

3 个答案:

答案 0 :(得分:5)

Firebase的默认配置使用从firebase控制台(而不是云控制台)发出的services.json。在Firebase控制台上创建项目时会自动配置Oauth设置,因此您不应使用手动创建的任何其他键

在应用程序的模块根目录上安装services.json应该是调用FirebaseAuth.signInWithCredential所需的一切,不需要手动设置Oauth。

答案 1 :(得分:2)

以下是我在Google网上论坛上发现的一个非常有用的讨论:https://groups.google.com/forum/?hl=ca#!topic/firebase-talk/d9MHQjAxFBY

我必须将Web客户端ID和白名单列入白名单。 https://console.developers.google.com/apis/credentials

上的Web客户端密钥

另外,请确保您在代码中使用requestIdToken(getString(R.string.default_web_client_id))而不是requestIdToken(<Actual Client ID>)

我希望这有帮助!

答案 2 :(得分:2)

jirungaray的回答是正确的,你不应该只是在API控制台中生成自己的密钥。但是,如果你像我一样并在乱搞时删除了你的密钥,你就可以解决这个问题。

在firebase中转到Authentication - &gt; Sign in Method - &gt; Google - &gt; Web SDK Configuration在这里,您可以将密钥和密码更改为您想要的值。