2016-07-03 5 views
1

Firebase Storage(Google Cloud Storage)を使用するには、ファイルをアップロードするために一意のファイル名を指定する必要があります。Firebase Firebaseストレージファイル名としてキーを押しますか?

私がすることができませんしかし、私はその後、クライアントは別途

それを読んで、ダウンロードすることができますFirebaseリアルタイムデータベースで(HTTPS URLまたはGS URL)そのストレージファイルの場所のコピーを保持することを計画Firebase Storageにあるファイルの固有のファイル名を思いついてください。いくつかのクライアントが単一のFirebaseルートに画像をアップロードしているので、私のケースではUUIDジェネレータを使用すると衝突が発生する可能性があります。

私の計画です。これは、私が「コンテンツ」と呼ばれるルートを持っているchatroom_k下chatroom_1、chatroom_2 ... chatroom_n

:チャットルーム、キーから構成されています。私はそれが

は私firebaseルートを呼び出すことができます動作するかどうかを知りたいのですがfirebaseによって一意に生成されたプッシュキーを格納してコンテンツを格納します。各プッシュキーはコンテンツを表しますが、実際のコンテンツはFirebase Storageに保存され、URLというキーは実際のコンテンツのURLを参照します。バケツ階層がchatroom_kを表している限り、Firebaseストレージ上のこのコンテンツのファイル名は同じランダム化プッシュキーを持つことができますか?

+1

あなたのUUIDジェネレータが複数のコールに対して同じUUIDを作成している場合は、別のジェネレータに切り替えます。しかしプッシュIDに基づいたものを使うことも大丈夫です。それらは本質的に時系列的に順序付けられたUUIDです。 –

+0

複数のクライアントが同じUUIDジェネレータを実行している場合(つまり、IOSプラットフォームによって提供されるものは何でも)、同じUUIDを生成するリスクはありませんか?クライアントベースでカスタマイズすることもできるUUIDジェネレータを使用する方法はありますか?プッシュキーの考え方も難しいです。最初にFirebaseデータベースの書き込みを生成し、書き込みを生成したキーを取得してストレージに書き込んで、データベースをURLで更新する必要があります – wrecktangle

+0

ああ、NSUUIDはグローバルに一意のIDを生成するようです私の問題! – wrecktangle

答えて

4

私は、ストレージがプッシュ()関数を提供する場合わからないが、提案は以下のようになります。ランダムな場所にあなたのfirebaseデータベースに

リクエストプッシュ()と名前のために、このキーを使用します。

いずれにしても、おそらくこの名前をデータベースに保存する必要があります。

私のアプリケーションには「写真」というノードがあり、そこでアップロードした画像に関する情報が保存されています。私は最初に新しいキーを取得するためにpush()を行い、このキーを使ってアップロードされたイメージの名前を変更します。

これはあなたが必要とするものか、それとも私が誤解したものですか?

+0

これは巧妙な解決策です。 @wrightは答えとしてこれを受け入れるべきです – Dika

関連する問題