2016-07-08 12 views
1

イメージをアップロード/ダウンロードする方法を理解しています。 Firebaseコンソールの内部でこのデータを管理する方法をお勧めしますか?Firebaseストレージ構造の例

ほとんどの場合、写真や動画をアップロードし、私たちのアプリ内でプライベートチャット/グループチャットを使用してユーザー間で送信します。

だから私は、これを作成するために始めた:

enter image description here

  1. 私は、ユーザーなどに画像を追加する必要がありますchat-上の画像を共有することが良いでしょうか

    /users/<userId>/images/<image-file> 
    
  2. をグループ?

    /groups/groupId/images/<image-file> 
    

が、これはどのようにグループメッセージとのfirebase構造ディール

/groups/<groupId>/<messageId> 

のmessageIdを拡大することuが

enter image description here

(メッセージおよびタイムスタンプを書いた)メッセージは、ユーザーIDが表示された場合

提案を歓迎します

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

+0

特定のフォルダ構造を選択する最大の理由は、[セキュリティルールを使用して特定のファイルへのアクセスを保護する](https://firebase.google.com/docs/storage/security)です。私はなぜあなたがfirebaseデータベースのタグを付けたのか分かりません。それはあなたの質問にどのように影響しますか? –

+1

ファイアベースのストレージに適用される可能性のある洞察とベストプラクティスを得るために、firrbaseデータベースを追加しました。単純な要件..プライベートチャットでのみ2人がファイルにアクセスすることができます、グループに参加しているグループのみがファイルにアクセスすることができます。どうやってそれに従って構造化することをお勧めしますか? – rayman

答えて

0

私によれば、ユーザーがアップロードした写真(またはファイル)はすべてユーザーの所有物なので、あなたのポイント番号1は実装する正しい方法です。セキュリティルールを適用することもできます。すでにフラットなので、建築について心配する必要はありません。それを心配することはありません。

ファイルをユーザのフォルダにアップロードすると、そのファイルへのリンクが表示され、Firebaseデータベースに保存することができます。私はあなたがあなたの意見ではっきりしていることを願っています1

ここでポイント番号2のFirebaseデータベースには、ユーザが行うチャットを保持するgroupsオブジェクトがあります。この場合も、画像をグループに共有したい場合は、Firebase Storageのフォルダにファイルをアップロードします。グループチャットでリンクを共有するだけです。

全体として、ファイルをFirebase Storageにアップロードし、Firebaseデータベースにリンクを保存して共有します。

両方の点でクリアであることを願っています。 それ以上のクリアランスが必要かどうか質問してください。

+0

お返事ありがとうございます。あなたは私がフォルダが必要ないと言う?すべてのグループメッセージをルートフォルダにスローするだけですか?私はfirebaseのデータベース構造上のグループメッセージを実際に扱う方法で質問を修正しました – rayman

+0

私のコメントに答えるためにあなたがチャンを持っているのだろうかと思っていましたか? (ポイント2について)ありがとう – rayman

+1

データベースにリンクを保存するだけの安全性はありますか?リンクにアクセスできないユーザーはファイルにアクセスできないと仮定します。 – Stradosphere

関連する問題