繁体   English   中英

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

[英]Firebase Cloud Firestore REST api authentication with only WEB API key?

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

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

以以下卷曲请求为例:

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密钥无法进行身份验证?

ps我忘了提到API密钥在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使用云身份和访问管理(IAM)来确定请求是否得到授权。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM