我允许用户将复杂的对象存储到实时数据库中,但考虑到恶作剧的可能性,我担心我的存储配额。在之前的项目中,我已经能够通过使用字符串长度明确定义每个键来限制值的长度:
".validate": "newData.isString() && newData.val().length < 512"
但是,我的当前对象有大量的嵌套键和字符串我宁愿只限制1MiB存储的每个对象调用它。 Firebase能够统计数据库大小并相应地向我收费,如果可能的话,我想在我的计算中访问它。类似的东西:
".validate": "newData.isObject() && newData.usage().storage < 1048576"
我试图避免创建一个云函数来检查每次写入然后JSON.stringify(obj).length
处理每个对象的长度并锁定帐户或类似的东西。是否存在可能导致限制对象大小的安全规则?
答案 0 :(得分:1)
安全规则中没有内置对象大小。通过调用JSON.stringify()
在云函数中执行此操作似乎是最合乎逻辑的方法。