Firebase规则-阻止用户

Firebase规则-阻止用户,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,我正在使用firebase作为聊天应用程序,我想通过用户名而不是firebase auth的uid阻止一些用户 是否可以对.write制定一些规则以匹配用户名并避免插入 谢谢 您可以进行身份验证。您只需要在服务器或云功能上使用Firebase Admin SDK。我强烈建议这样做,因为这样可以很容易地为数据库设置简单的规则 现在,如果你不打算这样做,有一个昂贵的解决办法,你可以使用,但它不建议在所有 您可以创建包含所有被阻止用户的新节点: { "blocked":{ "u

我正在使用firebase作为聊天应用程序,我想通过用户名而不是firebase auth的uid阻止一些用户

是否可以对.write制定一些规则以匹配用户名并避免插入

谢谢

您可以进行身份验证。您只需要在服务器或云功能上使用Firebase Admin SDK。我强烈建议这样做,因为这样可以很容易地为数据库设置简单的规则

现在,如果你不打算这样做,有一个昂贵的解决办法,你可以使用,但它不建议在所有

您可以创建包含所有被阻止用户的新节点:

{
    "blocked":{
        "username1":true,
        "username2":true,
        "username4":true,
        "username5":true,
        "username7":true
    }
}
然后,在将数据写入数据库时,再添加一个字段,其中包含当前正在写入数据库的用户的用户名。我看到你的聊天节点已经有了这个字段,但是如果你有更多的节点,你可能还想在那里添加这个字段

您的数据库规则如下所示:

{
    "rules":{
        "chats":{
            "$chatId":{
                ".read":true,
                ".write":"root.child('blocked').child(newData.val().user).exists()"
            }
        }
    }
}

如果您可以发布数据库结构,特别是存储这些用户名和当前规则的部分,这将非常有用。@RosárioPereiraFernandes done!谢谢。你说的街区是什么意思?您想阻止他们访问数据库吗?@RosárioPereiraFernandes prevent writing您不想为此使用Firebase Auth有什么具体原因吗?