是否可以替代writeFields?

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

This article表示“ [writeFields]现在已弃用”。此外,我找不到writeFields的任何文档,甚至在文档中也没有将其列为Request的一部分。

问题

我与Cloud Firestore安全规则面对的问题是,验证仅修改特定字段需要大量条件。例如,如果我要验证文档的唯一修改值是Request,则必须编写以下规则:

cakes

使用allow update: if request.resource.data.size() == 20 && request.resource.data.likes == resource.data.likes && request.resource.data.name == resource.data.name && request.resource.data.date == resource.data.date && request.resource.data.body == resource.data.body && request.resource.data.title == resource.data.title && request.resource.data.tags == resource.data.tags && request.resource.data.comments == resource.data.comments && request.resource.data.answers == resource.data.answers && request.resource.data.awards == resource.data.awards && request.resource.data.image == resource.data.image && request.resource.data.link == resource.data.link && request.resource.data.format == resource.data.format && request.resource.data.type == resource.data.type && request.resource.data.user == resource.data.user && request.resource.data.views == resource.data.views && request.resource.data.reports == resource.data.reports && request.resource.data.roles == resource.data.roles && request.resource.data.category == resource.data.category && request.resource.data.votes == resource.data.votes && request.resource.data.cakes is int; 完全相同规则应如下所示:

writeFields

如何减少规则的代码大小/ allow update: if request.writeFields.hasOnly(['cakes']) && request.resource.data.cakes is int; 的替代方法是什么?

限制

文档中提到的两个writeFields使此问题更严重:

  • 每个请求计算的最大表达式数:1,000

  • 最大规则集大小:64 KB

我希望在某种程度上能够达到这两个限制。

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

[不幸的是,您目前正在做的事目前是您的最佳选择。

Firebase规则小组正在努力改进语言,以使比较/区分地图类型对象变得更加容易,这将大大减少执行此类操作所需的表达式数量,但是没有时间表马上。请继续关注。

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