需要更好的Firebase实时数据库规则吗
[Firebase]客户端访问您的实时数据库'-------------' 7天前到期 您选择在测试模式下开始开发,这使您的实时 数据库实例完全向Internet开放。因为这个选择 使您的应用易受攻击者攻击,数据库安全规则 已配置为在前30天后停止允许请求。 从7天前开始,所有客户端请求都将发送到您的实时数据库 实例已被拒绝,并将继续被拒绝,直到 安全规则已更新。每天进行分析;如果你修改了 您的规则在过去24小时内的更改可能不会被考虑在内 因为需要更好的Firebase实时数据库规则吗,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,[Firebase]客户端访问您的实时数据库'-------------' 7天前到期 您选择在测试模式下开始开发,这使您的实时 数据库实例完全向Internet开放。因为这个选择 使您的应用易受攻击者攻击,数据库安全规则 已配置为在前30天后停止允许请求。 从7天前开始,所有客户端请求都将发送到您的实时数据库 实例已被拒绝,并将继续被拒绝,直到 安全规则已更新。每天进行分析;如果你修改了 您的规则在过去24小时内的更改可能不会被考虑在内 因为 我仍在开发我的应用程序,这封电子邮件出现了…你能建
我仍在开发我的应用程序,这封电子邮件出现了…你能建议一个更好的规则吗..我的应用程序包含用户登录、注册和重置名称、密码、电子邮件..如果你想让任何人能够读取你的数据库,但只有登录的用户才能写入,你可以使用以下方法:
{
"rules": {
".read": true,
".write": "$user_id === auth.uid"
}
}
{
"rules": {
".read": true,
".write": false
}
}
其中$user_id来自您的用户json。此变量不需要称为$user\u id。它可以是用户json中的任何变量。例:
"users" :
{
"user_id":
{
"name":"John Doe",
"email":"email@example.com",
}
}
如果希望数据库为只读,可以使用以下方法:
{
"rules": {
".read": true,
".write": "$user_id === auth.uid"
}
}
{
"rules": {
".read": true,
".write": false
}
}
你可以在扔骨头给我们-你希望规则做什么?什么是“好”规则?是否可以使用第一个规则,以便用户无法登录并注册第4行未知变量这些规则仅适用于数据库。注册/登录在Auth中进行,而不是在实时数据库中。它的作用是检查用户是否有日志,然后允许他们更改任何内容。我建议更新答案,因为此
$user\u id
未定义且无法按原样工作。我知道您正在尝试,但此答案中显示的规则不正确。您不能让$user_id表示某个内容而不指定它是什么-它是通配符,必须表示已定义的节点。例如,如果结构是/users/some\u uid/some\u child
,则规则必须是规则/users/$uid
,然后可以在规则中使用$uid作为通配符。看见