【问题标题】:Using UID vs user-names in storing user's data在存储用户数据时使用 UID 与用户名
【发布时间】:2016-07-11 20:52:47
【问题描述】:

我目前正在使用 Firebase 来存储我的用户的数据。它不是社交网络应用程序,但我们也希望在我们的应用程序中加入一点社交网络,例如添加朋友和关注他们在做什么。
我当前的 Firebase 数据库结构使用 UID(从 Firebase Auth 获得)作为用户数据的关键。考虑以下结构以进行澄清 -

-> users
    -> UID
        -> name
        -> phone
        -> email

这种方法的问题是用户不记得 UID,应用程序必须管理用户关注。我现在正在考虑使用用户名存储数据的不同方式,就像 Facebook 或 Twitter

-> users
    -> UserName
        -> UID
        -> name
        -> phone
        -> email

这个方法需要一些代码重写。我们可以做到这一点,因为我们仍处于前 Alpha 阶段,如果值得付出努力,我们有能力在上面投入时间。所有 firebase 文档和讨论都建议使用第一种方法,但从未提及第二种方法。

所以问题是,如果应用程序具有社交网络功能,是否需要遵循用户名方法?或者我们应该使用 firebase 文档,以免破坏任何东西,以防 Firebase 决定引入新功能。
坚持第一种方法可能有什么好处?

【问题讨论】:

    标签: firebase firebase-realtime-database


    【解决方案1】:

    您绝对应该遵守 firebase 准则。 考虑用户何时更改用户名和其他问题。

    https://www.firebase.com/docs/web/guide/structuring-data.html

    您可以通过简单地创建查找来实现业务需求。

    -> users
        -> UID
            -> name
            -> phone
            -> email
    
    -> usersByName
        -> UserName: UID
    

    如果我错了,请纠正我,但只有使用这样的模式才能确保用户名在 Firebase 中是唯一的。

    请求 www.yoursite.com/user/UserName 可以呈现与 www.yoursite.com/user/UID 相同的内容 或者,当 UID 请求时,您可以在应用程序中重定向到 www.yoursite.com/user/UserName url

    【讨论】:

    • 啊!查找是一种很好的方法。为什么我没有想到这一点?另外我目前只开发android应用程序,所以我不需要添加重定向。感谢您的建议。
    【解决方案2】:

    我会使用第二种方法,但使用自动生成的序列作为键。请记住,UID 和用户名会随着时间而改变。在这种情况下,您必须删除您的记录并重新创建它才能获得新的 UID/名称。什么可能导致其他问题,例如UID/名称可能是其他关系的一部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-06
      • 2017-10-11
      • 2018-11-15
      • 1970-01-01
      • 1970-01-01
      • 2012-12-06
      • 2023-03-09
      • 2021-02-20
      相关资源
      最近更新 更多