java Firebase一直在服务器配置中抛出OAuth2客户端id未找到
我试图使用Firebase将我的谷歌用户登录到我的应用程序中,但每次我使用以下方法时,都会出现以下错误: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);
}
}
});
}
# 1 楼答案
以下是我在谷歌群组上发现的一个非常有用的讨论:https://groups.google.com/forum/?hl=ca#!topic/firebase-talk/d9MHQjAxFBY
我不得不将网络客户端ID和;位于https://console.developers.google.com/apis/credentials的Web客户端机密
还要确保在代码中使用
requestIdToken(getString(R.string.default_web_client_id))
而不是requestIdToken(<Actual Client ID>)
我希望这有帮助
# 2 楼答案
jirungaray的答案是正确的,您不应该只在API控制台中生成自己的密钥。然而,如果你和我一样,在胡闹的时候删除了你的钥匙,你可以解决这个问题
在firebase中,转到
Authentication
->Sign in Method
->Google
->Web SDK Configuration
在这里,您可以将密钥和密码更改为所需的值# 3 楼答案
Firebase的默认配置使用这些服务。从firebase控制台(而不是云控制台)发布的json。在Firebase控制台上创建项目时,自动配置Oauth设置,因此不应使用手动创建的任何其他键
有服务。应用程序的模块root dir上的json应该是调用
FirebaseAuth.signInWithCredential
所需的一切。不需要手动Oauth设置