5

如何限制用户保存超过某个限制的字符串?

我得到无效的属性访问:如果尝试使用字符串的长度属性在安全规则中进行验证,则目标不是对象。

4

2 回答 2

9

Firebase 安全规则现在支持length字符串的属性,以及其他几种字符串方法,包括replace()contains()toUpperCase()toLowerCase()等。

有关详细信息,请参阅https://firebase.google.com/docs/reference/security/database/#string_properties

于 2013-11-09T00:43:30.270 回答
3

您可以在规则中使用的语法在此处详细说明。

不幸的是,目前无法执行字符串操作(匹配、长度等)。 请参阅下面 ROB 的回答,此功能现已可用

我知道这至少在 Firebase 雷达上,因为我前段时间要求提供类似的功能。

如果您解释了要解决的问题的确切细节,则可以得到更具体的答案;现在我会给你一些一般的想法。

使用特权应用

使用特权应用程序监控 Firebase,每当将值写入您需要进行字符串验证的特定字段时,手动检查并在无效时将其删除。

自然,客户端验证将处理所有有效的用例。所以这只需要防止恶意插入。

或者,您可以将其更多地视为审核。只需将任何无效字符串通过电子邮件发送到某个地址以进行审查。由于客户端将在插入之前确保字符串有效,因此您再次只是查看错误或恶意行为。

将写入委托给 API

与其让客户端写入特权数据,不如将其发送到 API 并让 API 写入该数据——使其只读给客户端。

别担心

你真的需要验证长度吗?简单地看看它是否是一个字符串就足够了吗?有人会“破解”字符串的内容真的令人担忧吗?可能不是。可能是,但可能不是。

如果这是一个问题,是否可以通过其他途径解决?如果涉及服务器,只需使用上述过程。

于 2013-05-11T15:10:01.627 回答