我使用Firebase创建了一个聊天应用,有时聊天用户充斥着冠军,我想阻止他。
我创建了我的块方法来设置以下内容:
chat_blocks/USERNAME_TO_BLOCK:true
和我的规则:
".write": "!root.child('chat_blocks/'+newData.child('username').val()).exists()"
但它阻止了所有人。
我的结构很简单:
chat_messages
-$key
-- username
-- message
chat_messages/--list of messages
答案 0 :(得分:0)
我做了一些挖掘并找到了两个解决方案。
<强> 1。设置禁止用户
考虑在bannedFor
树下添加users
节点。然后,您只需转到users
节点,确保该信息不存在,并授予他们访问.read
和.write
users
$uid
"bannedUntil": 1486599300
现在谈到你的规则,它看起来像这样
{
"rules": {
"users": {
"$uid": {
".read": "!data.child('bannedUntil').exists() || data.child('bannedUntil').val() < now"
}
}
}
}
<强> 2。设置邮件费率
限制用户在特定时间段内可以发送的邮件数量。我为此解决方案找到了jsfiddle以及rules。
每隔5,000毫秒将消息限制为不超过一个
PS:我知道这不一定能解决您当前的问题,但它提供了替代解决方案。