【问题标题】:How to query firebase remote config rest API如何查询firebase远程配置rest API
【发布时间】:2020-11-06 15:55:30
【问题描述】:

我正在尝试查询 firebase 以获取我的 webapp 的远程配置。出于性能原因,我想使用 REST API 而不是官方 SDK。

到目前为止,我已尝试在 stackoverflow 上关注 google documentationthis post

目前,无论我尝试什么,我都会收到以下回复:

curl -H "Authorization: Bearer {token}"  \
  "https://firebaseremoteconfig.googleapis.com/v1/projects/{my-project-name}/remoteConfig"
{
  "error": {
    "code": 401,
    "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
    "status": "UNAUTHENTICATED"
  }
}

我不明白我应该如何检索不记名令牌。我尝试了所有可以在IAM admin > API & Service > Credentials 中找到的值,但没有成功。

感谢您的帮助。

【问题讨论】:

  • 实际上错误消息是指未经身份验证的问题,请尝试运行此命令并按照说明操作:(gcloud auth login)然后尝试您的命令: curl --compressed -i -D headers -H "Authorization: Bearer token" -X GET firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/… -o filename.json .... 您是否还在命令中提供了授权不记名令牌?.....请告诉我,您是否创建了您的 Firebase 项目的新服务帐号还是使用默认服务帐号?
  • 您好@SohailAlvi,我的问题是关于如何检索不记名令牌。正如我在 op 中所写,我尝试了在 IAM admin > API & Service > Credentials 中可以找到的所有值,但没有成功。 我认为我没有为我的 firebase 创建一个新的服务帐户项目,如何检查chis?
  • 嘿@SohailAlvi,我发现了一些有趣的 int gcloud 文档:Authenticate REST Requests > Legacy tokens。看起来像我要找的东西,但我仍然收到错误 401(无效凭据)。

标签: firebase google-cloud-platform firebase-remote-config


【解决方案1】:

可以在不使用 Google API 客户端库的情况下授权对 Firebase Remote Config API 的调用,但不建议这样做。

正如Oauth 2.0 authorization with service account 中所述,“您的应用程序可以通过使用适用于您的语言的 Google API 客户端库或使用 HTTP 直接与 OAuth 2.0 系统交互来完成这些任务。但是,“OAuth 2.0”身份验证交互的机制要求应用程序创建 JSON Web 令牌 (JWT) 并对其进行加密签名,并且很容易出现严重错误,从而严重影响应用程序的安全性。”

如果确实有必要避免使用 Google API 客户端库,可以使用其他第三方工具,例如 oauth2l。但是,Google 并未正式支持此工具,也不保证其功能。

我只想强调 --credentials' argument 作为选择服务帐户 JSON 文件的方法,cURL command 作为此用例的示例。

我建议您遵循documentation,其中列出了使用Google API Client Library 授权相关 API 所需的步骤。请记住,steps 生成的服务帐户 JSON 文件代表 Firebase Admin SDK 服务帐户的私钥,这是一个非常适合使用的服务帐户,但任何具有 Firebase 远程配置角色的服务帐户“Firebase 远程配置” Admin' 也会work

我想强调的一个重要主题是,目前https://www.googleapis.com/auth/firebase.remoteconfig 范围存在一个持续存在的问题,该问题会影响授权访问此 API 的典型流程,您可以改用 https://www.googleapis.com/auth/cloud-platform 范围,即在REST API doc 中提到作为替代方案。 (如果您希望使用“oauth2l”,则此解决方法适用)

【讨论】:

  • 非常感谢您的回答。最后我转向另一个解决方案,因为远程配置不适合我的需求。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-10
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多