私はこのアプリを、ユーザーがプロフィール画像を持つことができる場所に設定しています。私はすべての設定をしましたが、画像が2MB +であれば、読み込むのに時間がかかり、実際には50KB程度の画像しか必要としません(画像の小さな表示、最大40ピクセル)。私はリアルタイムのデータベースに画像を直接書き込むコードを作った(キャンバスに変換し、7kbのbase64文字列にする)。しかし、これは本当にきれいではないし、Firebase Storageを使うほうが良い。Firebase Storageを使ってBase64イメージをアップロードする
新しいアップデート3.3.0以降、putString()メソッドを使用して、Base64形式の文字列をStorageにアップロードできます。しかし、キャンバスイメージ(「data:image/jpeg; base64」で始まる)をアップロードすると、エラーが表示されます:
v {code: "storage/invalid-format"、message: "Firebaseストレージ:文字列が 'base64':無効な文字が見つかりました "、serverResponse:null、名前:" FirebaseError "}の形式と一致しません。
先頭にキャンバスイメージの文字列があるためにこのエラーは発生しますか? Stack全体を検索しましたが、答えが見つからないようです。
あなたは 'putString(myString、 'data_url')'を使ってみましたか?それはあなたが最初の23桁をハックアップする必要なく動作するかもしれません。 https://firebase.google.com/docs/reference/js/firebase.storage –
@ AnthonyChuinardのソリューションが動作することを確認できます。 – Chrillewoodz
ありがとう@AnthonyChuinard!これは動作します! – Francesco