Firebaseに画像を保存して表示する方法
更新(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をお勧めします。
はい、Firebaseに画像を保存して表示することができます。ファイルピッカーを使用して画像ファイルを取得できます。そうすればあなたが望むイメージをホストすることができます。Amazons3が好きです。画像がホストされたら、その画像用に生成されたURLを使用して画像を表示できます。
お役に立てれば。
私は自分でbase64フォーマットで画像を保存することになりました。 firebaseからコールバックされたとき、私はそれらを彼らのbase64値から翻訳します。
あなたのイメージをサーバーに保存するFilepicker
と呼ばれるサービスを使うこともできます。そして今Filestackと呼ばれる Filepicker はイメージへのURLを提供します。そのURLをFirebaseに保存することができます。
私が最初にGrendal2501のやり方でやったやり方はいくつかあります。私はそれからuser15163と同じようにしました、あなたはfirebaseに画像のURLを保存してfirebase HostあるいはAmazon S3に画像をホストすることができます。
JSONでBase64文字列を使用することは非常に重いでしょう。パーサーはたくさんの重い作業をしなければなりません。現在、FrescoはBase 64 Baseのみをサポートしています。 Amazon CloudまたはFirebase Cloudに何かを置いたほうがよいでしょう。そして画像をURLとして取得します。そのため、キャッシュにPicassoまたはGlideを使用できます。