Firebaseのユーザー権限周りの話
TL;DR;
- FireStoreベースとCustomUserClaimベース双方やっておくと便利
- CloudFunctionで同期を取れるようにしておくとなお良し
Firebaseでのユーザー権限
FirebaseでAdminだったりだとか課金ユーザーだったりとかの、一定の権限を持ったグループを作る場合、
カスタムユーザークレームを使うのと、
Firestoreに権限管理用のcollectionを作ってセキュリティルールで頑張るパターン(existsなどを書く)があります。
それぞれのメリットデメリット
カスタムユーザークレーム
メリット
- FireStoreに依存しないので、Storageのルールでも利用できる
- ルールが短くて済む
デメリット
- Adminでしか登録できない。(通常SDKでは操作不能)
- 自分の持っているClaim一覧を通常SDKでは取れない
権限管理用Collection+exists
メリット
- 細かい制御が可能
- 通常SDKでもルール次第で操作可能
デメリット
- storageのルールでは使えない
推奨したい方法
面倒だけれども、両方使ってしまえばいいとこどりが可能。
- カスタムクレームで済むものはカスタムクレームで済ます
- FireStore上にはクレーム一覧用のテーブルを読み取り専用で持っておく
- クレーム一覧テーブルの更新をトリガーとしてCloudFunctionを設定してカスタムクレームとの同期をとる
Author And Source
この問題について(Firebaseのユーザー権限周りの話), 我々は、より多くの情報をここで見つけました https://qiita.com/xx2xyyy/items/acba77dbae871031d661著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .