Firebase 在存储用户';s数据

Firebase 在存储用户';s数据,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我目前正在使用Firebase存储用户的数据。这不是一个社交网络应用程序,但我们也希望在应用程序中加入一点社交网络,比如添加朋友和关注他们正在做的事情。 我当前的Firebase数据库结构使用UID(从Firebase Auth获得)作为用户数据的密钥。考虑下面的结构来澄清-< /P> -> users -> UID -> name -> phone -> email 这种方法的问题是用户记不起UID,应用程

我目前正在使用Firebase存储用户的数据。这不是一个社交网络应用程序,但我们也希望在应用程序中加入一点社交网络,比如添加朋友和关注他们正在做的事情。
我当前的Firebase数据库结构使用UID(从Firebase Auth获得)作为用户数据的密钥。考虑下面的结构来澄清-< /P>
-> users
    -> UID
        -> name
        -> phone
        -> email
这种方法的问题是用户记不起UID,应用程序将不得不管理用户跟踪。我现在正在考虑另一种使用用户名存储数据的方式,就像Facebook或Twitter一样

-> users
    -> UserName
        -> UID
        -> name
        -> phone
        -> email
这个方法需要一些代码重写。我们可以做到这一点,因为我们仍然处于阿尔法前期阶段,如果值得努力的话,我们可以在这方面投入时间。所有firebase文档和讨论都建议使用第一种方法,但从未提及第二种方法

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

坚持第一种方法可能有什么好处?

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

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

-> 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。我将使用第二种方法,但将自动生成的序列作为键。请记住,UID和用户名可能会随时间而变化。在这种情况下,您必须删除记录并重新创建它,以获得新的UID/名称。可能导致其他问题的原因,例如UID/名称可能是其他关系的一部分

啊!!查找是一种很好的方法。为什么我没有想到这个?另外,我目前只开发android应用程序,所以我不需要添加重定向。谢谢你的建议。