【发布时间】:2021-10-17 21:15:27
【问题描述】:
在我的 Angular Firebase 应用程序中,许多用户可以登录并编辑一个相同的数据。例如,假设他们正在编辑特定主题的文档。每天都会生成一个新的 Report 对象,它继承了不同的主题和文档。我的数据结构如下:
export interface Report {
date: Date;
day: string;
topics: Topic[];
}
export interface Topic {
name: string;
documentations: Documentation[];
}
export interface Documentation {
userId: string;
userName: string;
documentation: string;
}
我想将报表存储为一个没有子集合的对象,这样我就可以一次加载所有数据,而无需向 API 发出大量读取请求。此外,我的用户被分成几组,因此每个主题最多只有 4 个文档,大约 6 到 10 个主题。
因此,每个用户都可以阅读其他用户的文档,但只能编辑自己的文档。 据我所知,无法通过 Firestore 安全规则保护对阵列的访问,所以我唯一的可能就是使用用户云功能来保护我的数据。但我不知道,这是否是最有效的方式,或者不同的数据结构是否更适合我的情况。 因此,如果我是对的并且我必须使用云功能,我该如何检查用户是否只编辑了他的文档而所有其他文档都未编辑?还是我应该尝试不同的方法?
【问题讨论】:
标签: angular firebase google-cloud-firestore google-cloud-functions