📜  对象的firebase规则 (1)

📅  最后修改于: 2023-12-03 14:53:40.562000             🧑  作者: Mango

Firebase规则中的对象

Firebase是Google提供的一个实时数据库平台,它能够快速而简单地创建实时应用程序,并提供了基于规则的访问控制系统,以保障数据的安全性和完整性。Firebase规则是用来限制客户端数据读写操作的一种策略,包括实时数据库和云存储。

对象基础

在Firebase规则中,对象是最基本的数据类型之一,对象是由一组键值对(map)组成的。JavaScript的对象也是由键值对组成。下面是一个简单的对象的例子:

let person = {
  name: 'Terry',
  age: 18,
  city: 'Shanghai'
};

上面的代码中,person对象有三个属性,分别是name、age和city。在Firebase规则中,对象是一个键值对的集合,与JavaScript的对象几乎相同。

Firebase规则中的对象

在Firebase规则中,对象使用JavaScipt的语法定义。对象可以嵌套使用,可以通过 . (点) 操作符访问。例如:

{
  "users": {
    "$uid": {
      "name": {
        ".read": "true",
        ".write": "$uid === auth.uid"
      },
      "email": {
        ".read": "true",
        ".write": "$uid === auth.uid && newData.val().endsWith('@example.com')"
      }
    }
  }
}

上面的代码中,users是对象名,包含了一个$uid属性,$uid是Firebase的占位符。在Firebase规则中,$符号代表了占位符,可以匹配任何字符串。在这里$uid占位符匹配由客户端指定的任何字符串。例如,如果客户端读取/users/john/name,那么$uid的值就会是john

在上面users对象中,nameemail是两个字符串键值对组成的对象,在每个对象中都定义了.read.write属性。.read.write属性可以限制客户端对该属性的读写权限,增强Firebase数据库的数据安全性。

对象规则属性

在Firebase规则中,可以使用很多对象规则属性来限制客户端的读写权限,这里列出一些常用的规则属性:

  • .read - 只有在这条规则为 true 时才能读取该对象
  • .write - 只有在这条规则为 true 时才能写入该对象
  • .validate - 只有在该规则为 true 时才能写入该对象

在对象规则属性中,可以直接使用变量、计算值和函数等语言特性。在Firebase规则中,常常使用的特性有:

  • auth - 当前用户验证信息
  • newData - 写入的数据
  • now - 当前时间

最后,需要注意的是,在Firebase规则中,对象是最基础的数据类型之一。在实际应用中,它可以是复杂的对象嵌套、数组、JSON等任何类型的数据结构。Firebase规则强大的特性,可以帮助程序员快速而准确地控制数据的访问和管理。