Firebase-您的Cloud Firestore数据库具有不安全的规则,如何解决?

时间:2019-10-29 05:25:39

标签: firebase google-cloud-firestore firebase-security

我使用下面的firebase rest API访问我的Firestore数据库数据

https://firestore.googleapis.com/v1/projects/testproject/databases/(default)/documents/Test/Employee?key=a29.ImCbB4CbV3CWoPouWsh24NrQ-3eKUmuK-dELilZGmPqqDlq4jJNWBmJ47MnJ1pBQSDPNqPeknqD4Usm9SIf6pmG-8sfK15QlkQR

要访问我的Firestore数据库,我在关键部分使用了访问令牌,但是我收到了来自Firebase的电子邮件,内容为“ [Firebase]您的Cloud Firestore数据库具有不安全的规则”。直到那时我才发现,即使没有有效的访问令牌,任何人都可以访问我的数据库数据

所以我尝试在数据库中添加如下规则,并希望只有有效的访问令牌才能访问我的数据库

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth.uid != null;
    }
  }
}

但是添加规则后,即使具有有效的访问令牌,我也无法再使用REST API查询数据库,其余api返回错误以下

{
  "error": {
    "code": 403,
    "message": "Missing or insufficient permissions.",
    "status": "PERMISSION_DENIED"
  }
}

任何人都知道如何编辑规则以确保数据库安全,同时仍然能够通过REST API进行访问。

谢谢

2 个答案:

答案 0 :(得分:0)

我想我想出了访问令牌有什么问题,我必须将令牌作为承载传递给标头,而不是将其作为url的键传递。

答案 1 :(得分:0)

我找到了另一种无需暴露auth令牌即可完成您所要求的方法。我选择的解决方案是允许在Firebase中进行匿名登录。在这里,您可以看到更详细的说明:https://stackoverflow.com/a/60426745/2636562