即使firestore安全规则中的文档字段不可用,也如何允许访问?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了即使firestore安全规则中的文档字段不可用,也如何允许访问?相关的知识,希望对你有一定的参考价值。

因此,我在用户文档中添加了一个名为numberOfFollowers的新字段,因此,新用户将拥有此字段,但是旧用户则没有此numberOfFollowers字段。

在安全规则中,我想将numberOfFollowers设置为数字。如果旧用户没有此字段,则仍然允许更新其文档。

所以我设置了这样的安全规则

match /users/{userID} {

      allow update: if isValidUserStructure(request.resource.data)

    }

  function isValidUserStructure(user) {
        return (user.numberOfFollowers is number || user.numberOfFollowers == null)
             && user.banned is bool
             && user.contactNumber is string
             && user.createdAt is timestamp
             && user.domicile is string
             && user.email is string
  }

但是由于此行(user.numberOfFollowers is number || user.numberOfFollowers == null),对于没有此字段的旧用户,访问总是被拒绝。>

因此,我在用户文档中添加了一个名为numberOfFollowers的新字段,因此全新用户将拥有此字段,但是旧用户则没有此numberOfFollowers字段。在安全规则中,我想设置...

答案

要检查某个文档中是否没有字段,您应该使用已记录的Map操作来检查密钥的存在,以检查作为in类型对象的数据对象:

以上是关于即使firestore安全规则中的文档字段不可用,也如何允许访问?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法使用Firestore安全规则使用FieldValue.increment()更新文档字段?

文档字段的 Firestore 规则

如何检查传入号码数据是否大于或小于Firestore安全规则中的特定限制?

Firestore 安全规则 - 如何检查某个字段是不是被修改?

访问 Firestore 规则中的父文档字段

如何从Swift中的Cloud FireStore Firebase访问特定字段