2017-08-20 5 views
0

firebaseを使用してログインと登録機能を持つウェブサイトを作っています。私はfirebase "認証"データベースを登録ユーザーを格納するために使用しています。しかし、 "認証"データベースdoesntは、他の電子メールID、パスワードと自動生成されたUUIDを格納しません。認証データベースのデータをリアルタイムで参照するfirebase

私はusernameのようなより多くのデータを保存する必要があります。私はfirebaseの "リアルタイム"データベースを同じものに使用しています。

私の質問は、同じことをするベストプラクティスです。私は、「認証」のデータベースからプライマリキーとしてUIDを使用すると、以下のように私のリアルタイムデータベースに外部キーとしてそれを維持する必要があります:

認証DB:

Record 1 - Email:[email protected]; password:somepassword; UID:UID1 
Record 2 - Email:[email protected]; password:somepassword; UID:UID2 

リアルタイムDB構造を:

users 
| 
|--UID1 
    | 
    |---Name:Amanda 
    |---Surname:Waller 
    |---age:30 
|--UID2 
    | 
    |---Name:MyName 
    |---Surname:Mysurname 
    |---age:39 

firebaseの自動生成UIDを使用する代わりに、電子メールIDを主キーとして使用する方がよいでしょうか。 SQLでは、一般に、自動生成されたIDを主キーとして使用しないためです。

+0

[ユーザ名]()と[profile pic]()の例は、Firebase認証に直接格納することもできます。これらの2つの例については、Firebaseのドキュメントを参照してください。https://firebase.google.com/docs/auth/android/manage-users#update_a_users_profile(Androidでも、WebとiOSでは同じです)。 –

答えて

1

UIDを使用する方がよいでしょう。 1つは、キーにピリオドを付けることができないため、電子メールをキーとして使用する場合は、他の文字と置き換えることで対応する必要があります。また、認証のいくつかの形式は、Twitterのような電子メールを必要としません。ユーザーが認証されると簡単にUIDを取得できるので、これは私がお勧めするものです。

+0

また、すべてのユーザーに完全にアクセスする必要のある管理者ユーザーもいます。たとえば、管理者は特定のユーザーを検索してそのデータを取得します。このためには、メールを使ってUIdの逆引きを実行する必要がありますか? – user2713255

関連する問題