Firebase规则-如何阻止额外数据

我检查了文档和许多其他资源,但找不到与此相关的任何信息。 您如何确保用户发送的数据没有多余的数据?

Let's say, a post could be { title: 'Y', author: X, content: 'lorem...' }

有什么方法可以确保用户除了标题,作者和内容之外不包含其他内容?我们如何停止这些情况并保护数据库,使其不包含超出预期范围的内容?

我的意思是,可以,您可以从前端进行处理……但这并不安全:)

我发现处理此问题的唯一方法是使用Cloud Functions并在那里设置必要的规则/逻辑。

此外,它给我一种感觉,即Firestore规则不如应有的安全。 除非您只是设置读取内容而不是编写内容的规则,否则似乎无法阻止用户添加额外的数据(属性)。

我希望有人能对此主题有所启发:)

评论
  • xsint
    xsint 回复

    您可以按Firestore规则限制密钥,但是每次添加新密钥时都需要更新规则,请尝试以下规则

    service cloud.firestore {
      match /databases/{database}/documents {
        match /scenarios/{scenario} {//replace scenarios with your collection name
          allow read: if true;
          allow write: request.resource.data.keys().hasOnly(['title','author','content']) == true;
         }
       }
    }