仅适用于元数据更新的Firebase存储规则

时间:2018-07-26 18:14:49

标签: firebase firebase-storage firebase-security-rules

在编写Firebase存储规则时,似乎没有一种方法可以区分对象创建/覆盖还是元数据更新。

特别是对于我的用例,我希望用户能够创建一个对象(如果该对象不存在),但是一旦存在,它可能不会被新对象覆盖。但是,用户应该能够更新对象的元数据。

Firebase Firestore规则允许您使用createupdate而不是write来区分创建和更新,但是在存储规则文档中我没有看到这样的等效功能。

Firestore规则示例:

allow create: if resource == null;
allow update: if true;

在存储规则中,如果可以指定类似以下规则,那就太好了

allow write: if resource == null || request.resource.metageneration != '1'

在上述假设规则中,如果当前不存在对象,或者如果请求的写入结果不会产生元生成“ 1”,则我们将允许写入,因为新对象的元生成为“ 1” ,但元数据更新产生的元代数大于“ 1”。

当然,上面的规则不起作用,因为request.resource变量不包含metageneration属性。

那么,还有其他方法可以区分对象覆盖与现有对象上的元数据更新吗?

0 个答案:

没有答案