mono 
2 min readSep 17, 2018

--

まず、記事に書かれている方法はとても簡単です(数分で対応できます)。

なので、提案されている方法は「もっと簡単な方法」ではなく「同じく簡単な方法」という程度ですね。

そのユーザーのIDとPasswordをコード上にハードコーディング

Passwordをコード上にハードコーディングはなるべく避けるべき(特にOSSでは絶対に避けるべき)で、またFirebase Authenticationの仕組み上、セキュリティルール上でのチェック時にPasswordは不要です。

また、ユーザーIDはユーザー作成するまで不明なので扱いにくいです。ユーザーIDが生成された後に管理者扱いするユーザーIDを設定しなくてはいけませんし、同じコードで環境ごとにプロジェクト分ける場合はさらに厄介です。
そのため、元記事ではメールアドレスで管理者かどうか判別するようにしています。

さらに、特にOSSではユーザーID・メールアドレスといえども管理者扱いするものをコード上に残しておくことは攻撃のヒントを与えてしまうことになり、少しだけ危険です。

というわけで、FirestoreルールにユーザーID(メールアドレスの方がベター)をハードコーディングするという方法は可能かつまあまあ安全ですが、記事記載のやり方に比べてあえてそちらにするメリットはゼロだと思います。

--

--

mono 
mono 

No responses yet