适用于博客的Firebase安全规则

时间:2016-06-22 08:03:46

标签: firebase firebase-realtime-database firebase-security

我正在玩firebase,存储用户博客帖子,以及喜欢和不喜欢的数量,

我正在邮寄 /posts/$uid/$key (例如:/posts/XFSDFSFSDFSDF/-KKm1gBQRivx1x-thh8m

要查询所有帖子,我还会在/timeline/$key中存储相同的数据 (例如:/timeline/-KKm1gBQRivx1x-thh8m

类似于喜欢和不喜欢,我的安全规则是这样的。

{
  "rules": {
    ".read": true,
    "posts":{
      "$uid":{
        ".write": "$uid === auth.uid"
      }
    },
    "timeline":{
      "$key":{
        ".validate": "root.child('posts/'+ auth.uid +'/'+$key).exists()",
        ".write": "auth != null"
      }
    },
    "user-likes": {
      "$uid":{
        "$post":{
          ".write": "$uid === auth.uid",
          ".validate":"root.child('timeline/'+$post).exists() && newData.child('type').exists()"
        }
      }
    },
    "likes": {
      "$post":{
        "$key":{
          ".validate": "root.child('user-likes/'+ auth.uid +'/'+$post+'/'+$key+'/  type').val()==newData.child('type').val()",
          ".write": "auth != null",
          ".indexOn": ["type"]
        }
      }
    }
  }
}

两次保存数据有问题吗?还有其他更好的解决方案吗?

0 个答案:

没有答案