使用用户的UID(Firebase Auth创建用户时由Firebase生成)作为关联数据库条目的关键字是否有任何问题?
例如,在这里:
/config/user.uid/configObject
...每个用户都有一个配置条目。由于Firebase的数据库规则(父节点上的设置适用于所有子节点),通常需要创建一个单独的配置树(在示例中,需要读取/users
树并写保护)。 / p>
我可以看到这可能是不好的做法的唯一原因是,如果用户的UID发生了变化...... Firebase是否保证永远不会发生这种情况?我缺少什么?
答案 0 :(得分:3)
特定用户的UID永远不会改变(尽管他们确实change the format a few months ago;旧格式包括提供者)。
这是一个很好的做法,在许多情况下是必要的,并且可能在某处推荐。您需要将用户信息非规范化为多个节点,以获得更好的性能和授权,如您所述。它可能在伪代码/规则中看起来像这样:
- users_private (.read: $uid == auth.uid)
- $uid
- email
- users_public (.read: true)
- $uid
- name
- photo
- users_roles (.read: dependent on some other rules)
- $uid
- is_admin
- is_editor