当前位置: 首页 > 知识库问答 >
问题:

投票系统firebase安全规则

郑翰海
2023-03-14
{
 "rules": {
   "users": {
    "$uid": {
      ".read": true,
      ".write": "auth.uid === $uid",
      "votes": {
        ".validate": "auth.uid === $uid && newData.isNumber() && (newData.val() === -5 || newData.val() === 3 || newData.val() === 1) || auth.uid !== $uid &&newData.isNumber() && (newData.val() === -3 || newData.val() === 3)"
        } 
      }
    }
  }
}

共有1个答案

丘浩宕
2023-03-14

这是一个稍微更易读的方法来实现相同的目标(至少对我来说是这样):

".validate": "(newData.isNumber() && (
  newData.val() === 3 /* Everyone can set to 3 */
  || (auth.uid === $uid && newData.val() === -5 || newData.val() === 1) ||       
  || (auth.uid !== $uid && newData.val() === -3)
)

但是规则允许每个身份验证用户写入$uid的位置,这似乎很奇怪。您确定只想让任何用户写给此用户的投票吗?

如果显示要创建的JSON,以及要允许(和不允许)的写操作的代码,则可能更容易得到帮助。

 类似资料:
  • 问题内容: 我正在为我的PHP / MySQL网站创建一个投票系统,我想确保一个用户只能投票一次。什么是这样做的好方法?到目前为止,我已经想到并半实现了以下内容: 使用IP和表决将单个表决存储在数据库中。这样会造成体积大,但可确保每个用户获得一票。 在用户端存储cookie,以检查他们是否投票。这是最简单的方法,但显然用户只能禁用cookie。 什么是最实用的方法?任何其他建议都值得欢迎。 问题答

  • 本文向大家介绍php投票系统之增加与删除投票(管理员篇),包括了php投票系统之增加与删除投票(管理员篇)的使用技巧和注意事项,需要的朋友参考一下 关于投票系统怎么样怎么样的引言就不多说,这不是毕业设计,主要说一下使用php实现投票系统,与其他普通系统一样,分为两部分,一个是管理员部分,一个是普通用户部分。 关于投票系统的管理部分,非常之简单,提供两部分的功能,增加投票与删除投票 关键在于设计好数

  • 我最近收到一封来自Firebase的电子邮件,告诉我我的数据库(FiRest)的规则不安全,所以我将它们更改为以下内容: 在我有这些规则之前: 在做出改变后,电子邮件不断地回来,我不知道还能做什么。我已经尝试了以下链接中给出的几个选项,但它们都不能满足我的需要。 https://firebase.google.com/docs/rules/insecure-rules#firestore 我需要授

  • 简单介绍一下,我正在尝试了解Firebase安全协议,我已经建立了一个名为UsersDB的数据库,该数据库将根据身份验证存储详细信息。uid。详细信息包括全名、电子邮件、提供商、帐户创建日期、上次登录日期。 我设置了如下规则: 我的理解是,记录只能由user_id符合auth.uid.的人读写 我的问题是我做得对吗?如果不对,我应该如何实现这一目标?我只希望创建帐户的人能够读写这个,而没有其他ui

  • Slitaz提供许多关于系统安全的信息。软件在进入稳定发行版之前会经过几个月的测试。在启动的时候,服务会由rc脚本运行。要想知道开机自启动的服务列表,你可以查阅/etc/rcS.conf中的RUN_DAEMONS变量: $ cat /etc/rcS.conf | grep RUN_DAEMONS 要显示当前进程及其PID、内存使用,你可以使用ps命令或者htop程序(需安装): $ ps $ ht

  • 我试图为我的云还原设置安全规则,但我对规则应该应用于哪个数据库感到困惑。 我目前使用的唯一功能是记录Firebase事件。安全规则是否适用于Firebase事件?如果是,应该为哪个数据库编写规则?如果没有,我是否可以拒绝对所有事件的读/写访问,并且事件仍将被记录并发送到BigQuery?