首页 > 解决方案 > Firebase 规则中的验证

问题描述

我有一个这样的 JSON 数据结构:

recipes
   LZogi4JdMk_V5vLK_aA
       title: 'firste recipe'
   LZoh4QphqHknuvda0-f
       title 'secound recipe'

我想为每个食谱中的标题制定规则(验证)。我试过这样做:

"rules": {
  "recipes": {
    ".write": "auth != null",
    ".read": "auth != null", 
   "$title": {
        ".validate": "newData.isString() 
             && newData.val().length > 0
             && newData.val().length <= 20"
  }
}

我想我必须进入数组配方中的每个对象,但我不确定。有人可以帮忙吗?

标签: firebasefirebase-realtime-database

解决方案


根据 firebase docs and samples$用于表示 id 和动态子键,目前您将$title其视为每个配方的 ID,因此您的规则应如下所示:

"rules": {
  "recipes": {
    ".write": "auth != null",
    ".read": "auth != null",
    "$recipeId": {    //example: LZogi4JdMk_V5vLK_aA
      "title": {
        ".validate": "newData.isString() 
             && newData.val().length > 0
             && newData.val().length <= 20"
      }
    }
  }

这是 firebase 文档的链接: https ://firebase.google.com/docs/database/security/securing-data#structuring_your_rules


推荐阅读