带有 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的主要内容,如果未能解决你的问题,请参考以下文章

php 带有设备令牌的Firebase推送通知

如何通过 Firebase Google 身份验证获取带有刷新令牌的 YouTube 数据 API 访问令牌?

如何在 Swift 上将具有自定义 ID 的文档添加到 Firebase (Firestore)

如何处理 Firebase 中过期的用户 ID 令牌?

错误:Firebase ID 令牌已过期

Firebase React Native——如何获取和传输设备 ID/令牌?