2016-12-11 5 views
0

私は、ユーザーがプライベートまたはグループチャットで写真を送信できるチャットアプリを持っています。 /images/<chat id>/image.jpgファイルへのアクセスをグループメンバーに制限するにはどうすればよいですか?

チャットメンバーだけがこのファイルにアクセスできるようにするにはどうすればよいでしょうか? Firebase databaseには、/members/<chat id>/member1: trueのような構造のノードがあります。

リンクは対応するチャットにのみ投稿されるため、実際にはこれが必要ですか? authユーザーは実際にFirebase storageに保存されているファイルを参照できますか?または、これは設計によって防止されていますか?

答えて

0

永遠の質問です。いくつかの場所(Google GroupStorage DocsGithub Gist)について議論しましたが、TL; DRは:現在、別のサービスのルールでデータを読み取る方法がありません。

  • カスタムトークン
  • 本のサービス

一つの例では、カスタムメタデータのグループ情報を伝えるには、グループ情報を伝える:

サービスについては、次の2つのいずれかを行うことができます
// Allow reads if the group ID in your token matches the file metadata's `owner` property 
// Allow writes if the group ID is in the user's custom token 
match /files/{groupId}/{fileName} { 
    allow read: if resource.metadata.owner == request.auth.token.groupId; 
    allow write: if request.auth.token.groupId == groupId; 
} 
+1

ユーザーが複数のグループに所属できる場合はどうしますか? – MJQZ1347

+0

次に、私は通常、リンクされたGistのように、所有権情報が各ファイルに追加され、ユーザートークンが追加されるようなソリューションを推奨します。 –

関連する問題