2

私はユーザーの役割に基づいてfirebaseストレージを制限しようとしています。Firebaseのストレージルールでユーザ役割を認証する方法はありますか?

Database: 
    users 
     <uid> 
      admin=false 
      ... ... ... 

私はfirebaseストレージにルールの以下のようなものを使用しようとしています:

root.child('users').child(auth.uid).child('user').child('admin').val() == true 

私は書き込みルールにこれを追加した後に拒否されたアクセス権を取得しています。

ありがとうございました。

+0

をFirebaseストレージセキュリティルールは、データベース内のデータを参照することはできません。 [この回答を参照してください(http://stackoverflow.com/questions/38188459/create-group-access-to-firebase-storage-without-using-custom-authorization)または[this one](http:// stackoverflow。ロールベースのセキュリティのようなやり方をするためには、ユーザベースのアップロードのためのルール(firebase-storage-whats-the-rules-for-rules/38157858)を参照してください。 –

+0

フランクに感謝します。その少しハッキーですが、私は今すべてのことができると思う。 – Ahsan

答えて

3

フランク・バンPuffelenは彼のコメントで指摘したように:

function isAdminUser() { 
    return request.auth.uid in { 
     "yaddayadddayaddUserIDKey":"User Name1" 
    }; 
} 

service firebase.storage { 
    match /b/<appName>.appspot.com/o { 
     match /{allPaths=**} { 
      allow read; 
      allow write: if request.auth != null && isAdminUser(); 
     } 
    } 
} 
+1

管理機能はハードコードされた値のようです。これは現在のところ唯一の選択肢ですか? – kernowcode

+0

残念ながら、これは今のところすべてあります。 – Ahsan

関連する問題