2017-08-06 41 views
0

我允许用户将复杂的对象存储到实时数据库,但我担心我的存储配额给定了可能的恶作剧。在以前的项目中,我已经能够通过长限制值通过显式定义一个字符串长度每个键:Firebase对象大小验证

".validate": "newData.isString() && newData.val().length < 512" 

但是,我现在的目标有大量嵌套键和字符串我宁愿只限制1MiB存储的每个对象都称它为好。 Firebase能够统计数据库的大小并据此收费,如果可能的话,我想在我的计算中访问该数据库。喜欢的东西:

".validate": "newData.isObject() && newData.usage().storage < 1048576" 

我试图避免创建一个云功能检查每一个写那么JSON.stringify(obj).length过程中的每个对象的长度并锁定账户或类似的东西。有没有一种安全规则可能会导致限制对象大小?

回答

1

安全规则中没有内置对象大小。通过调用JSON.stringify()来实现云功能,这似乎是最合乎逻辑的方法。

+0

我很害怕这可能。使用云功能来解决数据库存储问题可能会允许用户改用我的功能分配级联问题。你将如何防止数据被写入数据库的功能,如验证声明将提供? – SmujMaiku