電子メール/パスワードの代わりにユーザー名/パスワードのログインシステムを使用したいと考えています。私が現在やっていることは、ユーザー名をとり、最後に「@ domain.com」を追加し、ユーザーをfirebaseに電子メール/パスワードアカウントとして登録することです。ユーザーを格納するためのfirebaseのキーとしてユーザー名を使用
私のfirebaseデータベースで、私は 'userProfiles/$ uid'の下にユーザ情報を保存しています。しかし、ユーザーのユーザー名だけが与えられていれば、最初に別のノードにアクセスしてuidを検索し、それを使用してユーザーデータにアクセスする必要があります。
私の質問です。代わりに各ユーザー名の下にユーザーデータを格納するだけで不利な点はありますか?私のセキュリティルールでは、私はこれを行うことができます:
$username + '@domain.com' === auth.token.email
ほとんどの場合、私はユーザーのUIDに直接アクセスしています。しかし、私はユーザーのパスワードをリセットしたい(私はfirebaseで電子メールとしてユーザー名を使用しているので、自分で実装しなければならなかった)、ユーザー名にしかアクセスできない場合があります。
firebaseは、firebaseに登録しているので、ユーザ名は一意になりません。 @ domain.comの形式で登録しています。「@ domain.com」は全ユーザ共通です。 –
これは正しいようです。同じ電子メールアドレスを持つ2人のユーザーを作成することはできません。したがって、ユーザーの作成後にユーザー名データを書き込むと、ユーザー名を一意に保つという問題は発生しません。 – DoesData