首页 > 解决方案 > 尝试仅向使用 Firestore 规则发布照片的用户显示应用程序中的照片

问题描述

我有一个用户可以登录并拍摄照片并将照片添加到提要的应用程序。我使用firestore作为数据库。

现在任何用户都可以看到所有其他用户的照片以及他们自己的照片。我希望只有登录的用户才能查看自己的照片。另一个论坛中的用户建议我使用 Firestore 规则来设置该控件,但我在执行更正代码时遇到了麻烦。

我通读了 firestore 上的文档,并尝试以他们无法正常工作的方式实现代码。以下是我的数据库信息和我当前的规则(不起作用)谢谢。

数据库:

service cloud.firestore {

  match /databases/{database}/documents { 
  
  match /{document=**}{

      allow read, write: if request.auth != null && request.auth.uid == 'byId';

      }

  }

我希望这段代码将用户的 uid 与 byId 字段(应该相同)进行比较,如果为真,则允许他们读写自己的数据

我还有一个身份验证页面,其中 uid == byId

标签: firebasegoogle-cloud-firestorefirebase-security

解决方案


这个检查request.auth.uid == 'byId'检查当前用户的 UID 是否是字面意思byId。如果要检查 UID 是否与byId文档中字段的 ht 值相同,请使用:

if request.auth != null && request.auth.uid == request.resource.data.byId;

我还建议查看有关保护文档访问的 Firebase 文档。


推荐阅读