Firebase Cloud Firestore REST api 身份验证仅使用 WEB API 密钥?

2023-12-04

我正在尝试通过其 REST API 和curl 在 Firebase Cloud Firestore 数据库中插入新记录。

由于操作是公开的,因此从数据库中读取数据可以按预期进行。创建操作未在数据库规则中列出,并且仅在服务器端执行,但我无法仅使用项目 API KEY 来执行此操作。

以以下curl请求为例:

curl --header "Content-Type: application/json" \
    --request POST \
    --data '{"fields":{"myField": {"stringValue": "test"}}}' \
    https://firestore.googleapis.com/v1/projects/**MY_PROJECT**/databases/\(default\)/documents/**MY_COLLECTION**?key=**MY_KEY**

上述请求返回“403:缺少或权限不足。”。提供的 api 密钥是从 Firebase 项目的设置 -> Web API 密钥中获取的。

我是否遗漏了某些内容,或者无法仅通过 API 密钥进行身份验证?

附注我忘了提及 API KEY 在 GCP 仪表板中不受限制。


Firestore REST API 不支持传递 API 密钥。你会注意到,在文档,没有提到“关键”参数。

如果您想使用 REST API 执行经过身份验证的操作,则必须遵循以下文档:认证和授权。总结一下:

对于身份验证,Cloud Firestore REST API 接受 Firebase 身份验证 ID 令牌或 Google Identity OAuth 2.0 令牌。 您提供的令牌会影响您的请求的授权:

  • 使用 Firebase ID 令牌对来自应用程序用户的请求进行身份验证。对于这些请求,Cloud Firestore 使用 Cloud Firestore 安全规则用于确定请求是否获得授权。

  • 使用 Google Identity OAuth 2.0 令牌和服务帐户对来自应用程序的请求进行身份验证,例如 数据库管理。对于这些请求,Cloud Firestore 使用 Cloud Identity and Access Management (IAM) 以确定请求是否 被授权。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firebase Cloud Firestore REST api 身份验证仅使用 WEB API 密钥? 的相关文章

随机推荐

  • Reactjs读取属性文件?

    我在寻找解决方案时遇到困难如何在reactJS中读取属性文件 我读过您可以使用模块 properties reader 但我似乎无法使要求工作 有简单的方法吗 例如 import React Component from react imp
  • Github - 需要有关发出拉取请求的帮助

    我分叉了一个项目 进行了更改 C1 并提出了仍待处理的拉取请求 一周后 我想提出另一个带有更改的拉取请求 C2 与此同时 上游 我分叉的地方 发生了很多变化 所以我想将我的 master 与上游同步 并且需要单独提供带有更改 C2 的拉取请
  • 类型或命名空间“Mvc”名称在命名空间“System.Web”中不存在

    我有一个使用 RazorEngine 生成电子邮件的类库 RazorEngine 使用 Mvc 我在我的库类中引用了 System Web Mvc 将其设置为复制本地 并且它存在于 Bin 文件夹中 但是我仍然得到这个例外 我让它工作的唯一
  • 这是在我的程序中嵌入调试消息的好方法吗? (宏)

    在 Debug h 文件中 我有以下内容 ifdef DEBUG FLAG define DEBUG msg std cerr lt lt msg lt lt std endl else define DEBUG msg for true
  • 托管 C# dll 上的 GetProcAddress

    我正在尝试通过 LoadLibrary 加载 C dll 我能够成功加载它 您能告诉我如何使用此 dll 的 GetProcAddress 以便我可以使用此 dll 中定义的方法和类型吗 提前致谢 EDIT 1 解决此问题的最佳方法是 CO
  • Web USB 从设备到浏览器传输数据无法正常工作

    上面是我的设备配置 我正在尝试从中获取数据 我正在使用下面的代码来获取数据 document getElementById request onclick function navigator usb requestDevice filte
  • java httpssession有效吗?

    我在 tomcat 中使用 java servlet API 我将用户名和带有属性用户名的 httpsession 保存在哈希表中 我想知道是否有办法检查 httpsession 是否有效 我试过了 try String user http
  • Google Chrome 错误 - 溢出:自动 |滚动不起作用

    这是我在 Chrome 中的网站 文本在框外运行 这是在 IE 中没有问题 这是相关的CSS section height 1000px width 670px border thick solid rgb 51 97 120 border
  • windows和spyder中的python多处理问题

    我的大学有一个关于 python 多重处理的项目 对于我的 python 项目 我在 Windows 中使用spyder 因此 我尝试在spyder中运行一个非常简单的多处理代码 但每次我运行它时 spyder控制台都会冻结并且永远不会完成
  • 手动为 boost 的图表着色

    我正在努力尝试使用 boost 手动为图的顶点着色 我写了下面的代码 但我不明白为什么生成的文件没有任何颜色 int main int char typedef property
  • 为什么不能在循环中隐藏局部变量?

    我遇到了这种情况 我无法理解阴影 例如下面的代码 class Foo int a 5 void goFoo int a No problem naming parameter as same as instance variable for
  • 构建管道的保存被禁用

    我已经填写了构建管道的所有选项 并且没有错误消息 如何找出 保存 按钮被禁用的原因 如果我转到顶部菜单上的 触发器 那么我可以在 持续集成 下看到一些需要注意的设置 在我的屏幕截图中 红色的小错误图标实际上在 触发器 一词的映衬下可见 您必
  • 在 Razor 邮件模板中使用 @Html.Raw 渲染 HTML 内容

    使用 Razor 页面作为邮件模板我尝试使用显示邮件内容 Html 内容 Html Raw Model Content 每当我运行代码时 我都会收到此错误 html does not exist in current context 我试过
  • 如何获取 CheckboxColumn Gridview 中选定的数据/项目行 - Yii2

    我在使用 checkboxColumn 获取所有选定值 数据 Yii2 Gridview 时遇到问题 我只能得到one of the value in the grid使用此代码 class gt yii grid CheckboxColu
  • 转换器类抛出异常 java.lang.IllegalArgumentException

    我的 JSF 页面中有 p selectOneMenu 当我运行 JSF 页面时 我从 Converter 类中收到以下异常 java lang IllegalArgumentException object 5634 is of type
  • QWidget::find 可以从不同的进程中查找小部件吗?

    的文档QWidget winId状态 除其他外 如果一个小部件是非本机 外星人 并且在其上调用 winId 则将为该小部件提供本机句柄 我不确定 外星人 在这种情况下意味着什么 但我现在选择忽略它 因此 假设我的小部件现在有一个与之关联的有
  • 用于选择发件人和签名的 VBA 代码

    在 Excel 中 我使用如下代码通过 Outlook 开始发送电子邮件 Set mOutlookApp GetObject Outlook application Set OutMail mOutlookApp CreateItem 0
  • iOS/Swift:PFFacebookUtils.logInWithPermissions 返回 nil 用户和错误

    在我的应用程序中 我通过 Parse 的 PFFacebookUtil 类登录用户 如果用户存在于手机上 即在 设置 gt Facebook 中登录 FB 则一切都会按预期进行 但如果他们是未通过设置登录 然后用户被带到 Web 视图进行登
  • 对于 CUDA 的嵌套循环

    我遇到了一些 for 嵌套循环的问题 我必须将其从 C C 转换为 CUDA 基本上我有 4 个 for 嵌套循环 它们共享相同的数组并进行位移操作 define N 65536 int a1 a2 a3 a4 i1 i2 i3 i4 in
  • Firebase Cloud Firestore REST api 身份验证仅使用 WEB API 密钥?

    我正在尝试通过其 REST API 和curl 在 Firebase Cloud Firestore 数据库中插入新记录 由于操作是公开的 因此从数据库中读取数据可以按预期进行 创建操作未在数据库规则中列出 并且仅在服务器端执行 但我无法仅