Firebase应该在我的用户id结构中包含单词“;simplelogin”;

Firebase should my user id structure include the words "simplelogin"?

本文关键字:包含单 simplelogin 结构 我的 id 用户 Firebase      更新时间:2023-09-26

当我使用简单登录并使用authData.uid登录时,我会得到simplelogin:1的返回(1是我的用户id。

我的用户结构是这样设置的:

{
    "users":
    {
        "1": { ... },
        "2": { ... }
    }
}

我的规则是这样设置的:

{
  "rules": {
    "users": {
      "$userid": {
        ".read": "auth.uid == $userid",
        ".write": "auth.uid == $userid"
      }
    }
  }
}

所以我有点困惑于如何使/users/1发挥作用。是否每个人通常都会使用户结构"simplelogin:1"而不是"1"

这是说我没有查看用户的权限,因为我的$userid"simplelogin:1"而不是"1"

有人知道我该怎么解决吗?

在上面的示例中,唯一的跨提供者用户id是simplelogin:1,而不仅仅是1。只使用整数是有问题的,因为这些用户ID在所有提供商(Twitter、Facebook、Google、GitHub等)中都不是唯一的,并且可能会发生冲突。

在设计中,用户id应包含用户身份验证方式的前缀。还要注意,这些用户id的格式将来可能会更改,因此不建议您尝试解析它们或将它们视为可读的。它们只是Firebase的唯一字母数字ID。