如何锁定更新/删除由用户创建的集合到在firestore中创建集合的同一用户(不使用云函数)?



我有以下模型和规则…等式的第一部分工作得很好,用户可以CRUD他自己创建的集合,并且它具有与创建者相同的id。

问题在于由该用户创建的其他集合,因为它具有不同的id(由firestore自动生成的id,我想将此集合锁定为仅由创建它的用户修改),任何想法如何做到这一点?

Collections Model
// Data   // doc id === uid
subDataId: null,
createdAt: Timestamp.now(),

// Sub Data // doc id === generated automatically by fb refrenced in the data collection. 
online: false,
createdAt: Timestamp.now(),
// Firebase rules 
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /Data/{userId} {
allow read , create: if request.auth != null
allow update, delete : if request.auth.uid == userId
}

match /SubData/{SubDataId} {
allow read , create: if request.auth != null
//  allow update : if request.auth.uid == ?????????

}
}
}

编写一个规则,要求用户提供自己的用户ID作为正在创建的文档的字段(请参阅关于要求提供字段的文档)。确保应用程序中的代码完全做到了这一点。还要编写一个规则,检查更新文档的用户的用户id是否也与该用户先前写入的字段匹配。

你可能也想看看另一个问题。

相关内容

  • 没有找到相关文章

最新更新