2016-07-11 8 views
1

現在、私はユーザのデータを格納するためにFirebaseを使用しています。これはソーシャルネットワーキングアプリではありませんが、友人の追加や自分のやっていることに従うなど、ソーシャルネットワーキングにも少し触れたいと思っています。
現在のFirebaseデータベース構造は、ユーザのデータのキーとしてUID(Firebase Authから取得)を使用しています。明確化のために次のような構造を考えてみましょう -ユーザのデータを格納する際にUIDとユーザ名を使用する

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

このアプローチの問題は、ユーザーがUIDを思い出すことができないとアプリは以下のユーザーを管理する必要がありますです。私は今、この方法では、いくつかのコードの書き換えを必要とするだけで、FacebookやTwitterの

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

のように、ユーザ名を使用してデータを格納するための別の方法を検討しています。私たちはまだアルファ前段階にあり、努力する価値があるのであれば、それに時間を費やす余裕があるので、これを行うことができます。すべてのfirebaseのドキュメントと議論は最初のアプローチを示唆していますが、2番目のアプローチについては言及しません。

アプリケーションにソーシャルネットワーキング機能がある場合は、ユーザー名のアプローチに従う必要がありますか? Firebaseが新しい機能を導入することを決めた場合には、Firebaseのドキュメントを参照して、何も破壊しないようにしてください。
最初のアプローチにとどまることのメリットはありますか?

答えて

2

あなたは間違いなく火災基地のガイドラインに固執する必要があります。 ユーザーがユーザー名やその他の問題をいつ変更するかを検討します。

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

あなたは、単に検索を作成することによって、ビジネス要件を達成することができます。私は間違っているだけで、このようなパターンを使用することにより、あなたはユーザ名がFirebaseで一意であることを保証できる場合

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

-> usersByName 
    -> UserName: UID 

は私を修正します。 www.yoursite.com/user/UserName へ

要求がwww.yoursite.com/user/UID と同じコンテンツをレンダリングすることもできますし、www.yoursite.com/user/UserNameのURLときに、アプリケーションにリダイレクトすることができますUIDによって要求されました

+0

Ah!ルックアップはそれを行う良い方法です。なぜ私はこれを考えなかったのですか?また、私は現在アンドロイドアプリのみを開発中ですので、リダイレクトを追加する必要はありません。提案していただきありがとうございます。 – noob

0

私は2番目のアプローチを使用しますが、自動生成されたシーケンスをキーとして使用します。 UIDとユーザー名は時間とともに変化することに注意してください。このようなシナリオでは、新しいUID /名前を持つためにレコードを削除して再作成する必要があります。他の問題につながる可能性があるものUID /名前は他の関係の一部である可能性があります。

関連する問題