首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$uid和auth.uid代表什么?

$uid和auth.uid代表什么?
EN

Stack Overflow用户
提问于 2016-10-06 07:24:10
回答 1查看 3.1K关注 0票数 2

阅读了一些文章,以了解Firebase中的规则和权限,然后遇到了类似于write操作的情况:

代码语言:javascript
复制
{
  "rules": {
    "users": {
      "$uid": {
        ".write": "$uid === auth.uid"
      }
    }
  }
}

我的理解是,$uid代表用户推送ID,它适用于为Users节点生成的所有动态ID。

然后看到这条规则是:

代码语言:javascript
复制
{
  "rules": {
    "articles": {
      "$article": {
        "title": {
                  ".write": "auth != null",
                  ".validate": "newData.isString() && newData.val() != ''"
        }
      }
    }
  }
}

如果$article代表articles节点的Push ID,那么users节点的Push ID也应该是$user。难到不是么?在配置规则时,声明Push ID的标准命名约定是什么,以便Firebase解析/正确理解它们。

最后,auth.uid代表什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-06 10:55:40

让我们从auth.uid开始,它代表通过身份验证的用户的uid。接下来是$user和$article,这些通配符路径使得它们可以成为任何东西,而不仅仅是推送id。查看医生们获取更多信息。

在您的第一个示例中,$uid是用户id的通配符。使用写规则,您可以检查身份验证的用户只能写入自己的位置,因此它将是这样的(为了清晰起见,使用名称而不是uid):

代码语言:javascript
复制
"users" : {
    "Henk": {//Only Henk can write here
    },
    "John": {//Only John can write here
    }
}

至于通配符路径的命名,据我所知,没有约定。就我个人而言,我使用描述性的名字,所以我知道它是什么。在使用用户uid作为路径时,始终使用$uid,对于其他用户,类似于对象id的$objectID。(这些可以是推送生成的或者是自制的)

至于其余部分,我建议您花一些时间阅读所有的关于安全规则的文档

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39889940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档