首页 > 解决方案 > Firebase Firestore / JS - 根据用户组管理读/写访问

问题描述

在我的应用程序中,我想根据用户组管理对某些数据的访问。我正在使用 Firestore。

这是我在数据库中设置数据的方式:

groups:
  0PkuNM6RmQi0R4kNrN6E:
    name: "Group 1"
    users:
      user1_uid: true
      user2_uid: true
      user3_uid: true
  UaN0fsM8aK1lGGPKAhPp:
    name: "Group 2"
    users:
      user4_uid: true

documents:
  tGKE1rmax4fwc8xm9V5a:
    title: "Document 1"
    desc: "Description 1"
    group: "UaN0fsM8aK1lGGPKAhPp"

作为入口点,我只有当前用户的 user_uid。我想获取我的小组可以访问的所有文档。

有没有办法只使用数据库中的“规则”来管理它,并发出如下基本请求:

databaseDocumentRef..collection("documents").get()

我尝试了一些规则,但没有成功。

谢谢。

标签: javascriptfirebasegoogle-cloud-firestore

解决方案


您不能使用规则按某些条件过滤文档。请阅读文档:规则不是过滤器。您将不得不查询数据库以获得您需要的确切数据,可能是通过多个查询。规则只能帮助您强制执行单个查询的要求,而不是更改它们的结果。


推荐阅读