如何使用Firebase为新用户创建自定义网址?

时间:2016-12-02 21:11:02

标签: reactjs firebase firebase-realtime-database firebase-authentication react-redux

我有一个React / Redux应用程序,可以在/users/<uid>

下在Firebase下创建和保存新用户

但是,我还想让每个用户都有自己的个人资料页面的自定义网址,例如domain.com/users/john-daviddomain.com/users/john-david-1343(如果原来的/users/john-david已被采用。)

最好的方法是什么?

我的问题是我要将用户存储在Firebase中的/users/<firstname-lastname-hash>下,但将它们存储在除了uid以外的任何内容之类似乎是个坏主意(这是真的吗?)。

但是,如果我不这样做,那么如何在Firebase中维护/users/<uid>,同时创建考虑重复的新用户名,并在访问{{1}时搜索用户是否存在}

以下是新用户保存到Firebase

的示例代码
domain.com/users/john-david-123

1 个答案:

答案 0 :(得分:2)

一般情况下,我们说您应该在Firebase中存储数据,以便查看它的方式,并且在存储用户时必须使用UID作为主键是没有理由的。您可能想要的是:

  1. 如您所述,将用户数据存储在/users/${username},包括uid字段。
  2. 当用户注册时,生成firstname-lastname子弹并存储在/uids/${uid} = username
  3. 通过这种方式,您可以使用简单的方法从UID映射到用户,反之亦然。这里的缺点是,一旦你将用户名加入你的数据结构,你可能永远不会让他们改变他们的用户名。

    或者,您可以撤销我的建议并存储/usernames/${username} = uid/users/${uid}。这样可以更轻松地重命名用户名,但要求您执行额外的查找以从用户名转到数据。