某些用户的 NoSQL 建模字段可见性

Posted

技术标签:

【中文标题】某些用户的 NoSQL 建模字段可见性【英文标题】:NoSQL Modeling fields visibility for certain users 【发布时间】:2021-12-16 09:26:50 【问题描述】:

我是 NoSQL 建模的新手,目前遇到一个我不知道如何解决的问题。

假设我有一个日历,并且允许某些人查看某些事件。这些人分为3组。在 SQL 中,我会给每个事件一个整数,并且我会做一个按位比较器。在 NoSQL(本例中为 Firestore)中,我需要指定某些规则,但不知何故,我不能禁止某人查看文档中的某个条目。我有一个关于如何解决这个问题的想法,但它似乎非常......无效。即,创建一个存储所有事件的集合(只能由管理员访问)并根据条目更新存储事件的 3 个文档。

有没有更好的方法?我对此有点陌生,但感觉很糟糕。

【问题讨论】:

我不确定我是否理解,我需要指定某些规则,但是,我不能禁止某人查看文档中的某个条目。我>?有哪些特定的规则?您是否只想从文档中读取特定字段? 【参考方案1】:

Cloud Firestore 中的读取是在文档级别执行的,这意味着您要么检索整个文档,要么什么也不检索。无法检索部分文档。您不能仅依靠安全规则来阻止用户读取特定字段。

如果您希望对某些用户隐藏某些字段,则必须将它们放在单独的文档中。您可以考虑在私有子集合中创建文档。然后为这两个集合编写具有不同访问级别的安全规则。

您可以参考Control Access to Specific Field 了解更多信息和示例。

【讨论】:

嘿@Albert,这个答案对你有帮助吗?

以上是关于某些用户的 NoSQL 建模字段可见性的主要内容,如果未能解决你的问题,请参考以下文章

如何切换网格布局中的小部件可见性?

Laravel / Eloquent 模型属性可见性

更改组件可见性时 Android Studio 空对象引用错误

Sharepoint Online - 如何设置项目列表可见性

如何在 Adapter 类的 RecyclerView 中提供子项的条件可见性?

Java 私有字段可见性