0

我有一些文章。如何限制写入Firestore中用户拥有的文档?

每篇文章都有一个参考场给谁写的特定文章作者的个人资料文件

Auth'd用户(使用Firebase的身份验证)将与这些配置文件关联。

只有当该用户拥有该文章时,我如何才能使这些文章可由当前登录的用户编辑?

在公司的FireStore的文档,有一个重复的例子:

service cloud.firestore { 
    match /databases/{database}/documents { 

    // Allows you to edit the current user document (like a user's profile). 
    match /users/{userId} { 
     allow read, write: if request.auth.uid == userId; 
    } 

    // Allows you to read/write messages as long as you're logged in (doesn't matter who you're logged in as, so theoretically you could change other peoples' messages). 
    match /rooms/{roomId} { 
     match /messages/{messageId} { 
     allow read, write: if request.auth != null; 
     } 
    } 

    } 
} 

哪里是如何组织和编辑由特定用户所拥有的文件的例子吗?

回答

2

假设您有一份文档,例如owner: <uid>存储在里面,你可以这样做:

service cloud.firestore { 
    match /databases/{database}/documents { 
    match /somecollection/{id} { 
     allow write: if resource.data.owner == request.auth.uid; 
    } 
    } 
} 
+0

我的文章文档没有'老板:',它有'主人:<引用到另一个文档>'(即'firestore.googleapis.com/project/XXXXXXXXX-eb000 /数据库/(默认)/文件/用户/ ajsidjasidjsaidjasidasj')。参考_contains_ uid。 – corysimmons

+0

Fwiw,我正在尝试你正在提议的内容,但它似乎不适用于参考。我怀疑我需要做一些'get()'的东西,但不能得到正确的语法...... :( – corysimmons

+1

当处理用户信息时,我建议将uid存储为字符串,只要你想参考确切的原因是一个业主 - 也许有办法做到这一点,否则,但我不知道如何工作。 –

相关问题