2017-12-01 12 views
0

私が開発しているWebアプリケーションの管理インターフェースを作成しようとしています。 Angularfire2でAngularを使用しています。私はデータベースとしてFirebase Firestoreを使用しています。Firestore User Collection isAdminの実装Angular

ユーザーコレクションにisAdminフラグを実装して、指定されたユーザーが管理機能にアクセスできるようにしたいと考えました。

これを開発するために私がどのように取り組むことができるかについて、誰もがわかります。私はあなたがユーザーのドキュメントに設定できるセキュリティルールがあることを知っています。認証されたユーザーが自分のドキュメントを読み書きできる場合、isAdminフラグの変更を止めるのは何ですか?

これは本当にブールキーを追加して管理インターフェースで切り替えるだけの簡単な方法ですか?

おかげで、 ウォルター

答えて

0

あなたはFirebase Admin SDKを使用してカスタムサーバーからカスタム認証主張を使用することができます。その後、これらのクレームをFirestoreのセキュリティルールルールに組み込むことができます。アクセスを制御する方法の詳細については、カスタムクレームhereを参照してください。あなたのFirestoreルールでは、例えば、次のようなadminカスタム要求を使用して、このドキュメントへの読み取りアクセスを制限することができます:

このようFirebaseのカスタムサーバーやクラウド機能から設定することができ
service cloud.firestore { 
    match /databases/{database}/documents/adminContent { 
    allow read: if request.auth.token.admin == true; 
    } 
} 

// Set admin privilege on the user corresponding to uid. 
admin.auth().setCustomUserClaims(uid, {admin: true}).then(() => { 
    // The new custom claims will propagate to the user's ID token the 
    // next time a new one is issued. 
}); 
+0

ワウ・ジェン!大きなファンbtwにお返事いただきありがとうございます。これはとても涼しいです。私はこれについて聞いたこともなく、ただ管理者の外でも私が必要とするすべてのことを行うべきです。 – wdumlao

関連する問題