将Google Cloud Storage访问权限限制为关注者(存储在Firestore中)

时间:2018-08-04 19:23:04

标签: firebase google-cloud-storage google-cloud-firestore

我正在创建一个社交网络。它将使用关注/取消关注模型。个人资料可以是公开的也可以是私人的(例如Twitter或Instagram)。

用户可以创建将存储在 Google Cloud Storage 中的照片。数据库正在由 Google Firestore 处理。

当前我的存储层次结构是

存储桶/用户/ {userId} /图片***

我的问题是:如何使用Cloud Storage Security Rules限制对特定用户照片的访问?

我希望人们只能在以下情况下查看他人的照片

1. they are following that user, or
2. the user is public

这似乎是一个超常见的用例,但未能找到任何答案。我还看到了其他问题,但他们不能解决问题。

Is it possible to set storage rules using firestore of Firebase?

Can Firebase Cloud Storage rules validate against Firestore data?

  • Frank van Puffelen讨论了使用custom tokens设置访问权限。在他的示例中,他使用的“行会”(可以代替用户的关注者),例如admin.auth().setCustomUserClaims(uid, {guild1: true})
  • 但这不适用于关注数百或数千个帐户的人。您需要具有用户遵循的每个userId并将其设置为true。例如。 user1跟随user2 / user3 / user4 / user5 / user6 / user7 / user8 .... user1000。大量数据需要塞入令牌(“自定义声明有效载荷不得超过1000个字节。”)
  • 您需要其他一些方法来公开个人资料。

我还查看了官方文档,唯一的相关示例为组重复了相同的自定义标记(由于上述原因,该标记无效)

如果您有任何建议使用Cloud Storage安全规则限制对遵循/取消关注模型(公共/私有)的访问权限,请告诉我。

0 个答案:

没有答案