我可以查询集合作为Cloud Firestore安全规则的一部分吗?

问题描述 投票:0回答:1

我有一个包含(C0)字段和DocumentRevisionLog字段的文档组成的集合(lastRevision)。如果文档的docId小于具有相同的lastRevision的文档总数,我想拒绝创建/更新。

我想写这样的东西

docId

是否可以在安全规则中查询这样的集合?

((如果有帮助,这是文档的Typescript类)

function lastRevision() {
    return request.resource.data.lastRevision;
}
match /DocumentRevisionLog/{change} {
   allow create, update: if lastRevision() >= 
     // line below is what I'm curious about
     db.collection('DocumentRevisionLog').where('docId', '==', request.resource.data.docId).length;
}
    

我有一个集合(DocumentRevisionLog),该集合由包含lastRevision字段和docId字段的文档组成。如果文档的lastRevision小于...

firebase google-cloud-firestore firebase-security
1个回答
0
投票

无法在安全规则中运行查询。您只能使用class DocumentManagerChange { docId : string; actorId : string; lastRevision : number; op: any; } 使用其已知路径来获取单个文档。如果规则中需要某种计数,则必须在另一个已知文档中保留该计数,以便在查询时读取。

© www.soinside.com 2019 - 2024. All rights reserved.