如何解决如何查询Firebase远程配置Rest API
我正在尝试查询Firebase以获取Webapp的远程配置。出于性能原因,我想使用REST API而非官方SDK。
到目前为止,我已经尝试在Stackoverflow上关注google documentation和this 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
中可以找到的所有值,但是没有成功。
感谢您的帮助。
解决方法
可以在不使用 Google API 客户端库的情况下授权对 Firebase 远程配置 API 的调用,但不建议这样做。
如 Oauth 2.0 authorization with service account 中所述,“您的应用程序可以通过使用适用于您的语言的 Google API 客户端库,或通过使用 HTTP 直接与 OAuth 2.0 系统交互来完成这些任务。但是,'OAuth 2.0' 身份验证交互的机制要求应用程序创建 JSON 网络令牌 (JWT) 并对其进行加密签名,并且很容易出现严重错误,从而严重影响应用程序的安全性。”
如果确实有必要避免使用 Google API 客户端库,还有其他的 3rd 方工具,例如 oauth2l。但是,Google 并未正式支持此工具,并且无法保证其功能。
我只想强调 --credentials' argument 作为选择服务帐户 JSON 文件的方法,以及 cURL command 作为此用例的示例。
我建议您遵循 documentation,其中列出了使用 Google API Client Library 授权相关 API 所需的步骤。请记住,由 steps 生成的服务帐户 JSON 文件代表 Firebase Admin SDK 服务帐户的私钥,这是一个非常适合使用的服务帐户,但具有 Firebase 远程配置角色“Firebase”的任何服务帐户远程配置管理员'也会work。
我想强调的一个重要主题是,目前 https://www.googleapis.com/auth/firebase.remoteconfig 范围存在一个持续问题,该问题影响授权访问此 API 的典型流程,您可以使用 https://www.googleapis.com/auth/cloud-platform而是在 REST API doc 中作为替代方案提到的范围。 (如果您希望使用“oauth2l”,则此解决方法适用)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。