阻止用户写入 firebase 表中的特定字段

尼科斯

我试图弄清楚如何阻止用户写入自己数据中的用户名字段(用户内部)。什么是最干净的方法来解决这个问题?我想我需要创建一个云函数来检查用户名是否不是唯一的,然后才允许写入,但目前规则允许用户写入用户中的任何字段。

在此处输入图片说明

{
    "rules": {
        "users": {
            ".indexOn": "username",
            "$uid": {
                ".read": "auth != null",
                ".write": "auth.uid === $uid"
            }
        }
    }
}
生气

您正在尝试验证用户请求的更新是否有效。你可以通过.validate规则来实现它

{
    "rules": {
        "users": {
            ".indexOn": "username",
            "username": {
                ".validate": "newData.val() === data.val()"
            },
            "$uid": {
                ".read": "auth != null",
                ".write": "auth.uid === $uid"
            }
        }
    }
}

这些查询现在将失败

UPDATE
{
  username: 23,
  displayName: "frank"
}

.

UPDATE
{
  username: 37
}

但这些都会成功

UPDATE
{
  username: 77,
  displayName: "doug"
}

.

UPDATE
{
  displayName: "Doug"
}

**注意**:如果您在客户端本身创建用户帐户,即用户名最初由客户端本身提供,则上述查询将失败,因为用户名不存在。为此,您可能需要更改为:
".validate": "!data.exists() || newData.val() === data.val()" 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在firebase中阻止读取孩子的特定字段

保护多个用户需要写入的 firebase 表

Firebase中的用户无法在Firestore中读取或写入自己的文档

阻止用户更改Firestore中特定文档字段的问题

如何阻止其他用户在 Oracle 中写入我的架构

从Firebase删除特定用户

Firebase / Firestore / React-是什么阻止用户将一百万个字段添加到自己的用户文档中?

如何在Firebase Auth中阻止用户未经登录权限访问其他页面

如何在 Firebase 中的管理员验证用户之前阻止登录?

Firebase规则:仅在一个用户uid上启用在特定节点上的写入

Firebase Firestore阻止客户端在文档中创建字段

针对具有特定 Firestore 字段的用户的 Firebase 推送通知

Firebase GoogleSignIn.signIn() 阻止用户交互

如何管理Firebase中的权限以允许不同用户读取/更新/写入?

Firebase Web 创建用户并在实时数据库中写入数据无法正常工作

在Linux中阻止特定用户的特定命令

阻止用户在输入字段中输入文本

Android Firebase实时写入新用户

Firebase-限制写入授权用户

如何从Firebase加载表日历的特定用户的事件

如何使用用户ID在Firebase中检索字段

從特定文章中添加阻止字段

Firebase中的用户组

Firebase 中的用户注册问题

Firebase Angular 2从用户表中检索数据

如何使用特定用户凭据在 firebase 中创建记录?

允许在 firebase 中对未注册用户执行特定操作

如何在firebase中存储用户特定的文档?

Firebase Auth - 禁用用户并阻止他与后端交互