谷歌登录在Android上不起作用(仅在iOS上)-颤振

谷歌登录在Android上不起作用(仅在iOS上)-颤振,android,firebase,flutter,firebase-authentication,google-signin,Android,Firebase,Flutter,Firebase Authentication,Google Signin,谷歌插件的登录似乎是在iOS上运行,而不是在Android上。我目前使用的是最新版本(谷歌5.0.2版)。通过填充SHA指纹和its凭据,我已经在Firebase控制台上使用了任何可能的配置。我还将google-services.json和GoogleService-Info.plist文件放在了flatter项目中 为了检查令牌的有效性,我使用了这个()我注意到的一件事是,无论何时从Android设备生成令牌,它都会在发布给和观众的上显示不同的值。我检查了Firebase项目的凭据,在受众上使

谷歌插件的登录似乎是在iOS上运行,而不是在Android上。我目前使用的是最新版本(谷歌5.0.2版)。通过填充SHA指纹和its凭据,我已经在Firebase控制台上使用了任何可能的配置。我还将google-services.json和GoogleService-Info.plist文件放在了flatter项目中

为了检查令牌的有效性,我使用了这个()我注意到的一件事是,无论何时从Android设备生成令牌,它都会在发布给和观众的上显示不同的值。我检查了Firebase项目的凭据,在受众上使用的OAuth客户端id来自Web应用程序,而不是Android设备(我只为iOS和Android设备开发)。iOS和Android生成的令牌都是JWT验证的令牌

这样,每当后端验证此令牌时,根据此指南(),它将返回令牌客户端id不匹配

我不确定原因是什么,因为我已经三次重新创建了Firebase项目,我仍然会得到相同的错误。有什么原因吗

其他信息:

核实:

iOS:

{
  "issued_to": "60204403274-jvgooi7...",
  "audience": "60204403274-jvgooi7...",
  "user_id": "1003...",
  "expires_in": 3583,
  "email": "dean...",
  "email_verified": true,
  "issuer": "https://accounts.google.com",
  "issued_at": 1619....,
  "nonce": "IF4Y3..."
}
{
  "issued_to": "60204403274-uqoa6ss...",
  "audience": "60204403274-7uh25jv2...",
  "user_id": "10036...",
  "expires_in": 1592,
  "email": "dean...",
  "email_verified": true,
  "issuer": "https://accounts.google.com",
  "issued_at": 1619...
}
{status: Cannot validate: Token client-id mismatch}
Android:

{
  "issued_to": "60204403274-jvgooi7...",
  "audience": "60204403274-jvgooi7...",
  "user_id": "1003...",
  "expires_in": 3583,
  "email": "dean...",
  "email_verified": true,
  "issuer": "https://accounts.google.com",
  "issued_at": 1619....,
  "nonce": "IF4Y3..."
}
{
  "issued_to": "60204403274-uqoa6ss...",
  "audience": "60204403274-7uh25jv2...",
  "user_id": "10036...",
  "expires_in": 1592,
  "email": "dean...",
  "email_verified": true,
  "issuer": "https://accounts.google.com",
  "issued_at": 1619...
}
{status: Cannot validate: Token client-id mismatch}
返回错误:

{
  "issued_to": "60204403274-jvgooi7...",
  "audience": "60204403274-jvgooi7...",
  "user_id": "1003...",
  "expires_in": 3583,
  "email": "dean...",
  "email_verified": true,
  "issuer": "https://accounts.google.com",
  "issued_at": 1619....,
  "nonce": "IF4Y3..."
}
{
  "issued_to": "60204403274-uqoa6ss...",
  "audience": "60204403274-7uh25jv2...",
  "user_id": "10036...",
  "expires_in": 1592,
  "email": "dean...",
  "email_verified": true,
  "issuer": "https://accounts.google.com",
  "issued_at": 1619...
}
{status: Cannot validate: Token client-id mismatch}

Firebase控制台:

您是否可以检查清单中是否有:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


页面

根据您的日志,安卓系统缺少当前页面。因此,添加nonce并再次测试

  /*  Create a nonce for this request.
   Here we append the string to a number of random bytes to ensure it larger
    than the minimum 16 bytes required.
    Read out this value and verify it against the original request to ensure the
    response is correct and genuine.
    NOTE: A nonce must only be used once and a different nonce should be used for each request.
    As a more secure option, you can obtain a nonce from your own server using a secure
    connection. Here in this sample, we generate a String and append random bytes, which is not
    very secure. */
有关更多信息,请按照“安全提示”页面上的提示进行操作: /


我已经添加了两个,但仍然显示相同的错误。它在模拟器上工作吗?模拟器和物理设备都显示相同的错误。你能用错误日志更新你的问题吗?@AmodGokhale,我已经更新了我的问题。谢谢你,我找不到nonce了android@HimanshiThakur,如果这是问题所在,我如何添加nonce?