web-dev-qa-db-ja.com

Firebaseに画像を保存して表示する方法

Firebaseに画像を保存して表示する方法

250
dogger

更新(20160519)Firebaseは、 Firebase Storage という新しい機能をリリースしました。これにより、画像やその他の非JSONデータを専用のストレージサービスにアップロードできます。 JSONデータベースにbase64エンコードデータとして保存するのではなく、画像を保存するためにこれを使用することを強くお勧めします。

あなたは確かにできます!画像の大きさに応じて、いくつかの選択肢があります。

1。小さい画像(10メガバイト未満)の​​場合

これを行うサンプルプロジェクトがあります。 https://github.com/firebase/firepano

一般的な方法は、ファイルをローカルに(FileReaderを使用して)ロードすることで、他のデータと同じようにFirebaseに保存することができます。画像はバイナリファイルであるため、base64でエンコードされたコンテンツを取得して、それを文字列として格納できるようにします。あるいはもっと便利なことに、それを data:url として保存することもできます。これはimgタグのsrcとして追加する準備ができています(これが何です)例です)!

2。大きな画像の場合

Firebaseには10MB(utf8でエンコードされた文字列データ)の制限があります。あなたのイメージが大きいならば、あなたはそれを10mbの塊に分割しなければなりません。 Firebaseは、数メガバイトの文字列ではなく、頻繁に変更される小さな文字列に対して最適化されています。大量の静的データが大量にある場合は、S3またはCDNをお勧めします。

263

はい、Firebaseに画像を保存して表示することができます。ファイルピッカーを使用して画像ファイルを取得できます。そうすればあなたが望むイメージをホストすることができます。Amazons3が好きです。画像がホストされたら、その画像用に生成されたURLを使用して画像を表示できます。

お役に立てれば。

23
user15163

私は自分でbase64フォーマットで画像を保存することになりました。 firebaseからコールバックされたとき、私はそれらを彼らのbase64値から翻訳します。

18
Grendel2501

あなたのイメージをサーバーに保存するFilepickerと呼ばれるサービスを使うこともできます。そして今Filestackと呼ばれる Filepicker はイメージへのURLを提供します。そのURLをFirebaseに保存することができます。

9
Felice

私が最初にGrendal2501のやり方でやったやり方はいくつかあります。私はそれからuser15163と同じようにしました、あなたはfirebaseに画像のURLを保存してfirebase HostあるいはAmazon S3に画像をホストすることができます。

2
Jakob Hartman

JSONでBase64文字列を使用することは非常に重いでしょう。パーサーはたくさんの重い作業をしなければなりません。現在、FrescoはBase 64 Baseのみをサポートしています。 Amazon CloudまたはFirebase Cloudに何かを置いたほうがよいでしょう。そして画像をURLとして取得します。そのため、キャッシュにPicassoまたはGlideを使用できます。

1
Asthme