Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 添加google登录firebaseui时应用程序崩溃_Java_Android_Firebase Authentication_Firebaseui - Fatal编程技术网

Java 添加google登录firebaseui时应用程序崩溃

Java 添加google登录firebaseui时应用程序崩溃,java,android,firebase-authentication,firebaseui,Java,Android,Firebase Authentication,Firebaseui,当我们添加这一行new AuthUI.IdpConfig.GoogleBuilder.build时,应用程序崩溃并显示此错误检查您的google服务插件配置,默认的\u web\u客户端\u id字符串未填充 怎么办?我尝试了GitHub和StackOverflow中建议的几乎所有解决方案,但我的问题没有得到解决。我的项目使用的是谷歌登录Firebase用户界面,我不知道为什么它现在不工作。如果我删除googlebuilder,那么这个应用程序就可以正常工作。 我认为这是firebase控制台

当我们添加这一行new AuthUI.IdpConfig.GoogleBuilder.build时,应用程序崩溃并显示此错误检查您的google服务插件配置,默认的\u web\u客户端\u id字符串未填充 怎么办?我尝试了GitHub和StackOverflow中建议的几乎所有解决方案,但我的问题没有得到解决。我的项目使用的是谷歌登录Firebase用户界面,我不知道为什么它现在不工作。如果我删除googlebuilder,那么这个应用程序就可以正常工作。


我认为这是firebase控制台中的一个问题。我使用两个不同的firebase项目来分离开发环境和产品环境,我今天开始在生产中遇到这个错误

我比较了两个生成的google-services.json文件,发现我今天生成的一个文件在oauth_客户端数组中缺少另一个对象

此选项有效-生成默认的\u web\u客户端\u id:

  "oauth_client": [
    {
      "client_id": "blabalbal-blablabal",
      "client_type": 1,
      "android_info": {
        "package_name": "haha",
        "certificate_hash": "ahaha"
      }
    },
    {
      "client_id": "hahah",
      "client_type": 3
    }
  ],
我今天生成了这个,默认的\u web\u客户端\u id不是从这个生成的

  "oauth_client": [
    {
      "client_id": "bababab",
      "client_type": 1,
      "android_info": {
        "package_name": "babab",
        "certificate_hash": "blablbalb"
      }
    }
  ],
因此,有效的方法有一个额外的对象:

  {
      "client_id": "hahah",
      "client_type": 3
   }
客户端id位于google云控制台->API和服务->凭证->OAuth 2.0客户端id->由google服务自动创建的Web客户端


因此,我将该对象作为临时解决方案粘贴回去…

对我有效的方法如下:

登录谷歌云控制台 从左侧菜单中,选择API和服务->凭证 从OAuth 2.0客户端ID部分下由Google服务自动创建的Web客户端复制客户端ID 回到Android Studio,在res->values->Strings.xml中,创建表单条目

<string name="default_web_client_id" translatable="false">XXXXXXX</string>
其中XXXXXXX是您在步骤3中从控制台复制的客户端ID

重新编译后,应用程序现在应该可以正常工作了。
不要手动编辑google-services.json:

从Google云控制台>API和服务>凭据>OAuth 2.0客户端ID为Web应用程序生成新的客户端ID。请务必选择Web应用程序而不是Android。 更新或添加调试、应用程序签名,并将SHA-1证书指纹上载到firebase设置。 现在从firebase设置下载最新的google-services.json。 用新的替换Project>app中旧的google-services.json。 现在构建你的应用程序。 这些步骤将使Firebase在OAuth 2.0中自动生成一个新的Android客户端,该客户端将包含您手动创建的Web应用程序的客户端ID。
对于我来说,将所有库更新到最新版本并添加带有字符串\u name default\u web\u client\u id solvedyou不应该自己添加此字符串,它应该由google services gradle插件生成。从技术上讲,这将修复它,但根本原因是——gradle插件没有生成该字符串
<string name="default_web_client_id" translatable="false">XXXXXXX</string>