带有 Firebase Id 令牌的 Firestore REST API
Posted
技术标签:
【中文标题】带有 Firebase Id 令牌的 Firestore REST API【英文标题】:Firestore REST API with Firebase Id token 【发布时间】:2019-05-06 15:12:55 【问题描述】:我正在尝试使用从 Auth SDK(ios,但实际上我将 FirebaseAuth 用于 osx,这就是为什么我除了使用 REST 之外别无选择,因为没有 FirebaseFirestore支持 osx)。
规则是
service cloud.firestore
match /databases/database/documents
match /places
allow create, update, delete, read: if true;
用于检索令牌
Auth.auth().currentUser?.getIDTokenForcingRefresh(true, completion ..
在我将令牌作为字符串并将其放入标头 Authorization: Bearer MY_RETRIEVED_TOKEN 之后
我请求的链接
https://firestore.googleapis.com/v1beta1/projects/MYPROJECTID/databases/(default)/documents/places?fields=fields&documentId=kk&key=API_KEY_FOR_WEB_APP_FROM_FIREBASE_PROJECT_SETTING
所以我在这里传递来自 Web 的 Firebase 项目设置的密钥
此 POST 请求的正文
"fields":
"nn":
"stringValue": "hhh"
但最后我得到 403 响应。
"error":
"code": 403,
"message": "Missing or insufficient permissions.",
"status": "PERMISSION_DENIED"
已经打破了我的想法试图找到一个错误。提前致谢!
【问题讨论】:
【参考方案1】:几天前我也遇到了同样的问题。
您应该尝试修改您的规则,如下面的代码:
service cloud.firestore
match /databases/database/documents
match /places/document=**
allow create, update, delete, read: if true;
在这种情况下,您为places
的所有文档设置规则。
您也可以在规则模拟器中测试您的规则。这工作得很好。
希望对你有帮助
【讨论】:
以上是关于带有 Firebase Id 令牌的 Firestore REST API的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 Firebase Google 身份验证获取带有刷新令牌的 YouTube 数据 API 访问令牌?