FirebaseError:权限缺失或不足。只读

时间:2021-04-27 11:26:41

标签: firebase vue.js google-cloud-firestore flamelink-cms

我的开发站点运行良好,“允许读取:如果为真”。在生产中,我进行了以下更改,这应该允许对公共集合进行读取访问。我能够下载数据并且我的前端正确呈现,但我在控制台中收到权限错误。

我使用火焰链接作为 cms,它确实在某些领域放置了引用。我是否还需要对所有引用的集合进行读取权限?

service cloud.firestore {
  match /databases/{database}/documents {
    match /fl_content/{document} {
      allow read: if true
    }
    match /fl_files/{document} {
      allow read: if true
    }
    match /fl_navigation/{document} {
      allow read: if true
    }
    match /{document=**} {
      allow read, write: if request.auth.uid != null;
    }
  }
}

我用这个 Vue 方法接收数据。 数据已收到,我可以访问它。

firestore: {
        pageContent: firestore
            .collection("fl_content")
            .where("_fl_meta_.schema", "==", "aboutPage")
            .limit(1),
    },

但是控制台显示错误

<块引用>

快照侦听器中未捕获的错误:FirebaseError:权限缺失或不足。

有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

好的,所以...首先,我认为您不需要对数据库进行匿名访问,即读取:如果为真。最后一句话:

  match /{document=**} {
        allow read, write: if request.auth.uid != null;
    }

为经过身份验证的用户授予对所有数据库的读取访问权限,这应该足够了。规则自上而下匹配,因此您看到的错误可能是因为您读取了有问题的集合,但其中的引用指向另一个集合,该集合此时没有权限,但是,当您到达最后一条语句时,将授予这些权限,因此您正在获取数据。