Javascript Firebase我的用户id结构是否应包含“用户id”字样;simplelogin;?
当我使用simple login登录并使用Javascript Firebase我的用户id结构是否应包含“用户id”字样;simplelogin;?,javascript,jquery,authentication,firebase,Javascript,Jquery,Authentication,Firebase,当我使用simple login登录并使用authData.uid时,我会返回simplelogin:1(其中1是我的用户id) 我的用户结构设置如下: { "users": { "1": { ... }, "2": { ... } } } { "rules": { "users": { "$userid": { ".read": "auth.uid == $userid", ".w
authData.uid
时,我会返回simplelogin:1
(其中1是我的用户id)
我的用户结构设置如下:
{
"users":
{
"1": { ... },
"2": { ... }
}
}
{
"rules": {
"users": {
"$userid": {
".read": "auth.uid == $userid",
".write": "auth.uid == $userid"
}
}
}
}
我的规则是这样制定的:
{
"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。I使用
auth.uid
作为节点名,这样就可以转换为simplelogin:1
。这只在使用多种登录方法时才重要,我会这样做。如果您知道您只使用简单登录,只使用id也可以。您希望修复什么?感谢您提供的信息。这很有意义。