firebaseに画像を保存して表示するには?
6 に答える
更新 (20160519) : Firebase はFirebase Storageと呼ばれる新機能をリリースしました。これにより、画像やその他の非 JSON データを専用のストレージ サービスにアップロードできます。画像を JSON データベースに base64 でエンコードされたデータとして保存するのではなく、これを使用して画像を保存することを強くお勧めします。
あなたは確かにできます!画像の大きさに応じて、いくつかのオプションがあります。
1. 小さい画像の場合 (10 MB 未満)
ここにそれを行うサンプル プロジェクトがあります: https://github.com/firebase/firepano
一般的なアプローチは、(FileReader を使用して) ファイルをローカルに読み込むことです。これにより、他のデータと同じように Firebase に保存できます。画像はバイナリ ファイルであるため、文字列として格納できるように、base64 でエンコードされたコンテンツを取得する必要があります。または、さらに便利な方法として、それをdata: urlとして保存することもできます。これは、img タグの src として挿入する準備ができています (これが例の動作です)。
2. 大きな画像の場合
Firebase には 10 MB (utf8 でエンコードされた文字列データ) の制限があります。画像がこれよりも大きい場合は、10 MB のチャンクに分割する必要があります。Firebase は、数メガバイトの文字列ではなく、頻繁に変更される小さな文字列に対して最適化されていることは確かです。大規模な静的データがたくさんある場合は、代わりに S3 または CDN をお勧めします。
Filepicker
また、画像をサーバーに保存するというサービスを使用することもできます。現在Filestackと呼ばれている Filepicker は、画像への URL を提供します。URLをFirebaseに保存できます。
JSON で Base64 文字列を使用すると、非常に重くなります。パーサーは、多くの面倒な作業を行う必要があります。現在、Fresco は base サポート Base64 のみをサポートしています。Amazon Cloud または Firebase Cloud に何かを置いたほうがよいでしょう。URLとして画像を取得します。Picasso または Glide をキャッシュに使用できるようにします。