6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Nuxt.js + Firebase】FirebaseStorageへの画像アップロードでハマったところ

Last updated at Posted at 2020-09-06

Firebaseを使って画像を使った何かを作ろうとして、Storageへ画像をアップロードする機能を実装するのにハマった点をつらつらと書きます。

##前提条件
すでにFirebaseで何かプロジェクトを作ってること。

##エラー
公式サイトや、こちら記事を参考に、Firebaseに画像のアップロードを試みましたが、


こんなエラーが出て立ち往生
TypeError: firebase_app__WEBPACK_IMPORTED_MODULE_3___default.a.storage is not a function

##原因 結論からいいますと、とても恥ずかしいのですが、Firebaseでストレージの設定をしてないだけでした。
##設定方法

ストレージの設定方法は公式を見ながらやりました。


##設定でハマった点

公式を見ながらやりましたが、色々とハマりました。

###セキュリティ設定
セキュリティは何もしなければ「デフォルト」設定なのですが、それでは通らないので、「公開」で設定します。
以下の公式にあるコードを Firebaseコンソールの「Strage < Rules」にコピペしてください。
https://firebase.google.com/docs/storage/security/start?authuser=0#public

###config設定

const config = {
  apiKey: "YOUR_APIKEY",
  authDomain: "YOUR_AUTHDOMAIN",
  databaseURL: "YOUR_DATABASEURL",
  projectId: "YOUR_PROJECTID",
  storageBucket: "YOUR_STORAGEBUCKET",
  messagingSenderId: "YOUR_MESSENGINGSENDERID",
  appId: "YOUR_APPID",
  measurementId: "YOUR_MEASUREMENTID"
  };

このstorageBucketで、ややハマりました。

storageBucketは、
Firebaseのコンソールの Storage > Files の gsから始まるURLです。
(以下画像)
スクリーンショット 2020-09-06 14.38.46.png

で、私がハマったのが、
storageBucket: "abcdef1234.appspot.com"
としたため。

正解は
storageBucket: "gs://abcdef1234.appspot.com"

gs:// が入ります。

 

import

そして、importを追加すること

import 'firebase/storage';

import 'firebase'; だけではダメのようです。

こちらの記事に助けられました。
TypeError: _firebase2.default.storage is not a function

ありがとうございました。

コード

※アップロードするところを抜粋

index.vue

methods: {
    post(pic){
        const file = pic.target.files[0];
        const storageRef = firebase.storage().ref(file.name)
        //Firebaseストレージに保存
        storageRef.put(file);
        //保存先のURL
        picurl = "gs://"storageRef.location.bucket +"/"+storageRef.location.path_
        //FirestoreにURLを保存  保存はされるが、もっといいやり方があると思う。
        const setAda = docRef.set({
            picurl: picurl
        });
    }
}
6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?