如何使某些数据字段在 Firestore 文档中可读
How to make certain data fields readable in a Firestore document
我的问题
是否可以创建 firebase 规则,使用户可以 read
文档中的某些数据字段,但 not read
同一文档中的其他规则?
我问这个问题是因为我想让用户能够从文档中查询数据,但只能查询文档中的某些字段。
例如
假设您在 story-document 中有以下数据:
/故事/{storyid}
{
title: "A Great Story",
content: "Once upon a time...",
author: "some_auth_id",
published: false
}
在下面的示例中,我尝试创建一个规则,以便用户可以 read/query
文档的作者(但不能是文档的其他字段 - 例如标题)。
请注意,我添加了 /stories/{storyid}/{author}
service cloud.firestore {
match /databases/{database}/documents {
match /stories/{storyid}/{author} {
allow read: if request.auth != null;
}
}
}
我将如何着手创建这样的规则?
我猜你的意思是“是否可以创建 firebase 规则,使用户可以读取文档中的某些数据字段但不能读取同一文档中的其他 字段? “
这实际上是不可能的:Firestore 安全规则适用于文档级别。
一个经典的解决方案是复制另一个集合中的文档,仅包含您希望使其可读的字段子集。
我的问题
是否可以创建 firebase 规则,使用户可以read
文档中的某些数据字段,但 not read
同一文档中的其他规则?我问这个问题是因为我想让用户能够从文档中查询数据,但只能查询文档中的某些字段。
例如
假设您在 story-document 中有以下数据:/故事/{storyid}
{
title: "A Great Story",
content: "Once upon a time...",
author: "some_auth_id",
published: false
}
在下面的示例中,我尝试创建一个规则,以便用户可以 read/query
文档的作者(但不能是文档的其他字段 - 例如标题)。
请注意,我添加了 /stories/{storyid}/{author}
service cloud.firestore {
match /databases/{database}/documents {
match /stories/{storyid}/{author} {
allow read: if request.auth != null;
}
}
}
我将如何着手创建这样的规则?
我猜你的意思是“是否可以创建 firebase 规则,使用户可以读取文档中的某些数据字段但不能读取同一文档中的其他 字段? “
这实际上是不可能的:Firestore 安全规则适用于文档级别。
一个经典的解决方案是复制另一个集合中的文档,仅包含您希望使其可读的字段子集。