【问题标题】:Firebase authentication - expired api keyFirebase 身份验证 - 过期的 api 密钥
【发布时间】:2018-08-21 11:51:57
【问题描述】:

我正在开发一个使用 Firebase 身份验证和其他 Google 服务的无服务器客户端应用程序。当 FB 登录身份验证突然停止工作时,一切都运行良好。碰巧当尝试登录用户时,我获得了 400 BADREQUEST 并带有以下正文:

{
    "error": {
        "code": 400,
        "message": "API key expired. Please renew the API key.",
        "errors": [{
            "message": "API key expired. Please renew the API key.",
            "domain": "global",
            "reason": "badRequest"
        }],
        "status": "INVALID_ARGUMENT"
    }
}

导致问题的url是:

https://www.googleapis.com/identitytoolkit/v3/relyingparty/getProjectConfig?key=AIzaSyDXJ1Lwo_Md0xZzFfPX9Y8dQWOaODE4uiM&cb=1534851951010

一些奇怪的事情:

  • 我用完全不同的项目进行了测试(所以全新的密钥):仍然失败
  • 如果我转到云控制台,我发现了几个由 Google 自动创建的无限制键(我附上了屏幕截图)

我还创建了一个全新的应用程序并在本地执行它。同样的结果。

有什么想法吗?

添加:我刚刚发现 Identity API 目前正在有效地返回 100% 的失败。

【问题讨论】:

  • 尝试创建一个新的browser API 密钥。
  • 显然有一个键错误;支持已修复它,但我升级它,因为我不明白问题是什么。有新信息我会尽快更新答案。
  • 我也突然得到这个...有什么消息吗?
  • 嗨,还没有。正如我在上一条评论中所说,“密钥已过期”,但如果您遵循项目文档,则无需明确创建任何内容,也不应该进行手动密钥管理,所以我升级了,我正在等待支持。如果我们想使用基于 Firebase 构建的解决方案,就需要了解这一点。
  • 最终更新。根据客户支持,一个密钥已被有效删除。现在,我不记得有这样的动作,而且我也认为必须清楚地知道你在做的时候发生了什么。无论如何,为了记录,如果您可能遇到与我相同的问题,请记住检查密钥。

标签: firebase firebase-authentication


【解决方案1】:

我也遇到了这个问题,这帮助我解决了我的问题:

  1. 转到 google api 控制台并找到密钥:Android 密钥(由 Google 服务自动创建)。当您选择以下选项时,Firebase 会自动生成这些密钥:身份验证中的电子邮件/密码。复制该密钥。

  2. 在您的 android 工作室的项目部分下转到 google-services.json。单击文件并查找 api_key -> current_key。在步骤 1 中使用 api 键修改该值。

【讨论】:

  • 我也做了同样的事情,但是没有用。然后我也确实在 Android Studio 上运行了一个“清洁项目”,它成功了!最后。感谢您的解决方案!
  • @Nick "Clean Project" 在编译apk之前是正确的键。谢谢
【解决方案2】:

首先,去https://console.firebase.google.com/

  1. 然后选择Android项目

  2. 然后转到该项目的设置

  3. 首先,检查:sha1 和 sha256 指纹是否存在用于调试 apk(必需)和发布 apk(如果您创建签名 apk 则必需)

  4. 在那里你会看到一个下载 JSON 文件的按钮,点击它,然后下载文件。

  5. 然后转到 Android Studio 并打开您的项目。

  6. 然后在左侧菜单中,点击项目子文件,然后找到 googleservices.json 文件。

  7. 双击打开该文件

  8. 现在打开下载的文件 googleservices.json,并在记事本中打开它。

  9. 现在复制所有内容,全选,然后复制。

  10. 现在转到 Android Studio,右键单击 Google 服务文件(在 IntelliJ 中)并单击与剪贴板比较,并仔细接受 Android Studio 文件中的所有差异。

  11. 或者您可以直接删除所有内容并将复制的内容粘贴到Android Studio JSON文件中。

完成! 注意:请确保在执行此操作之前制作文件的副本。

【讨论】:

  • 我确实做了,还是不行。
  • 也许你的问题是不同的
  • 我已经检查了你的程序,并且还在检查。我会让你知道它是什么,或者在它不起作用的情况下向你寻求进一步的帮助。顺便说一句,它只在这个项目中。
  • 你是对的 Vijay,我的 gradle 脚本有问题。我的 buildTypes 部分位于 signingConfigs 部分中。没有来自 gradle 的抱怨,也没有应用签名。
【解决方案3】:

我遇到了同样的问题,我通过以下方式解决了它: 重置我的项目,其中包括... 删除 Google-Services.json 文件,替换 SHA1 密钥,同步并在我的项目中添加新的 Google-Services.json 文件。希望对你有帮助。

干杯

【讨论】:

    【解决方案4】:

    我能够通过进入我的 firebase 项目设置来解决该问题>常规>使用 Web API 密钥值更新我的旧 API 密钥。

    【讨论】:

    • 你不必点击更新,它可能已经不同了。
    【解决方案5】:

    打开 Firebase 控制台。 转到项目设置 -> 常规选项卡 -> 您的 Web API 密钥将自动更新。然后复制该 API 密钥并将其替换为您 environment.ts 文件中的 API 密钥,它将正常工作。

    希望对你有帮助!

    【讨论】:

      【解决方案6】:

      在我的例子中,Android Studio 并没有根据google-services.json 中的更新数据正确生成string.xml,所以当我手动替换旧的 API 密钥时,它终于起作用了。

      【讨论】:

        【解决方案7】:

        AngularFire、Ionic、Angular

        我从Google cloud console 中的Browser key (auto-created by Firebase) 获得了新的API 密钥并替换它:

        environment.prod.ts

         firebaseConfig: {
                  apiKey: 'here'
            }
        

        还有D:\me\my-mobile\android\app\google-services.json

         "api_key": [
                {
                  "current_key": "here"
                }
        

        现在一切正常。

        【讨论】:

          猜你喜欢
          • 2020-06-20
          • 1970-01-01
          • 2018-11-14
          • 2019-09-04
          • 2019-11-23
          • 2016-01-29
          • 1970-01-01
          • 2011-07-25
          相关资源
          最近更新 更多