【问题标题】:Get Firebase Admin SDK private key programmatically以编程方式获取 Firebase Admin SDK 私钥
【发布时间】:2021-04-04 10:38:50
【问题描述】:

我需要创建 Firebase 项目,获取 Admin SDK 私钥,并以编程方式添加资源。

我可以使用 CLI - firebase projects:create 创建项目。但之后要使用 Admin SDK 或 REST API 向项目添加资源,我需要获取 Admin SDK 私钥。

我的计划是使用直接 HTTP 请求进行网络抓取。我知道 Fastlane 使用相同的逻辑来控制 Apple Developer Portal UI 并以编程方式从中获取数据。

首先,我需要去:https://console.firebase.google.com/project//settings/serviceaccounts/adminsdk 以及所需的 cookie、标头等。

然后,我应该模仿下面的生成新的私钥按钮并获取私钥。

但我从未使用过这种方法,尤其是包含会话、cookie 等的网页。而且,我想将其构建为微服务并部署到服务器。所以,我认为 2FA 可能是个问题。

我的问题:

  • 有没有更划算的方式获取Admin SDK?也许,我缺少 Firebase 资源中的某些功能。
  • 我可以在不使用任何前端抓取的情况下模拟此按钮的行为吗? Firebase 服务器中是否有任何预防措施来防止这种解决方案。
  • 如果我这样做并部署到服务器上,2FA 会不会有问题?微服务可以使用 1 个月的有效会话吗?或者,它会一直询问 2FA 是否有效? (我从未使用过无头浏览器等。我只是对 Selenium 进行了一些基本的网络抓取经验。)

【问题讨论】:

    标签: firebase web-scraping firebase-authentication fastlane


    【解决方案1】:

    看起来不需要抓取,gcloud CLI do the job。如果您想以编程方式创建 Firebase 项目并获取服务帐号,请执行以下步骤:

    • 使用 firebase CLI 创建:firebase projects:create --display-name "<project-name>" <project-id>(或者,您也可以使用 gcloud CLI 创建)
    • 在 gcloud CLI 中使用 gcloud config set project <project-id> 更改活动项目
    • gcloud iam service-accounts list 并在此处存储 EMAIL。 (这里只是自动创建的服务帐号,没有创建私钥。)
    • 创建和存储私钥:gcloud iam service-accounts keys create key.json --iam-account= <EMAIL-you-stored>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-22
      • 1970-01-01
      • 2021-05-08
      • 2015-03-05
      • 1970-01-01
      • 2014-05-04
      • 1970-01-01
      • 2013-09-28
      相关资源
      最近更新 更多