如何使用Firebase规则

时间:2018-07-19 16:02:11

标签: angular firebase firebase-realtime-database firebase-security-rules

我正在尝试将 Firebase 集成到我的 Angular 应用中。我从互联网上阅读了许多有关此主题的教程,其中大多数教程建议我为Firebase数据库定义以下规则(这意味着  允许读写权限):

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

但是默认情况下,我的数据库规则如下:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write;
    }
  }
}

当我尝试添加大多数教程建议的规则(“规则...”)时,发生了错误:'Error saving rules - Line 9: Unexpected '{'.(我还尝试用教程建议的规则替换原始规则,同样的错误)

似乎所有教程都没有说“ service cloud.firestore ...”的含义是什么(或者它们已经过时了?)

那么定义规则的正确方法是什么? 我想做的是使“规则...”工作正常,因为当我尝试在我的角度应用程序中访问我的firebase数据库时,出现以下错误:

permission_denied at /employees: Client doesn't have permission to access the desired data



所有代码均来自此post,而源代码可以在git上找到。

2 个答案:

答案 0 :(得分:2)

我有同样的问题。默认情况下,Firebase向您显示Cloud Firestore,而不向您显示实时数据库。转到firebase控制台->“数据库”,然后选择“实时数据库”(您的教程使用的数据库)。

您可以在这里找到它:

enter image description here

如果您想使用Cloud Firestore,您正在寻找的(允许读写权限)是:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

您可以在Cloud Firestore security sectionRealtime Database security section处找到更多信息

答案 1 :(得分:0)

对于您的Firebase应用程序,您可以使用以下规则:

babel-runtime

这里是the documentation

的链接