【vue×firebase】Vue2.0で.envの利用法 ~APIkeyを隠そう~
環境
vue 2.0系
firebase
はじめに
こんにちは!個人開発でいろいろ開発しているものです!
twitter
→https://twitter.com/js_manabitai
普段はvue2.0系とfirebaseを使用して開発しています!
コードをgithubなどにあげる際、firebaseのapi情報を隠さなくてはなりません。
聞いた話によると、github上にはAPI情報を自動的に取得するクローラーが走っているらしく、APIを公開してしまうと、firebaseを不正利用されて高額請求される恐れがあります。
そのため、github上にはAPI情報をあげては行けません!
そのために利用するのが.envというファイルです。
こちらの使用方法ですが、vue2.0での情報が少なく、まとまっていないものや不親切な記事が多かったため、記述しました。
まずはターミナルでコマンドを叩きます。
npm install dotenv --save
--saveをつけることで、package.jsonに情報が記載されます。
試しに追加されているか見てみましょう。
しっかり追加されていますね。
それではルートのmain.jsにて、dotenvを利用するコードを書きましょう。
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import vuetify from './plugins/vuetify';
import firebase from 'firebase'
import dotenv from 'dotenv'
Vue.config.productionTip = false
dotenv.config()
必要なのはdotenvのimportとdotenv.config()の部分です。
これが完了したら、ディレクトリのルート直下に.envというファイルを作成してください
そして、忘れないうちに.ignoreに.envを追加しましょう
# local env files
.env
.env.local
.env.*.local
ここまできたら、.envにAPI情報を入力してください
VUE_APP_APIKEY=XXXXXXXXXXXXXXXXXXXXX,
VUE_APP_AUTHDOMAIN=tXXXXXXXXXX.com,
VUE_APP_PROJECTID=XXXXXXXXX,
VUE_APP_STORAGEBUCKET=tXXXXXXXXXXXXXXXXXXXcom,
VUE_APP_MESSAGINGSENDERID=XXXXXXXXXXXXXXXXXXX,
VUE_APP_APPID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX,
VUE_APP_MEASUREMENTID=XXXXXXXXXXXXXXXXXXX
vue3.0ではVUE_APP_**としないと反応しないらしいです。
ここでも念のためVUE_APPから始めています。
登録できたら、一度app.vueのcreated内などでコンソールに表示されるか確認してみましょう。
export default {
created() {
console.log("env",process.env.VUE_APP_APIKEY);
},
}
ちゃんと中身が表示されれば、main.jsの表示を変更したい部分を変数に置き換えましょう。
var firebaseConfig = {
apiKey: process.env.VUE_APP_APIKEY,
authDomain: process.env.VUE_APP_AUTHDOMAIN,
projectId: process.env.VUE_APP_PROJECTID,
storageBucket: process.env.VUE_APP_STORAGEBUCKET,
messagingSenderId: process.env.VUE_APP_MESSAGINGSENDERID,
appId: process.env.VUE_APP_APPID,
measurementId: process.env.VUE_APP_MEASUREMENTID
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
firebase.analytics();
きちんとデータが表示されれば成功です。
※この際に、正しくデータが表示されないなら、サーバーを再起動してください。
npm run serve
私は再起動しなかったため、何時間もエラーに悩まされました。
.envにAPI情報を載せる手順って結構めんどくさいですね、、、
効率化できる方法があれば教えてください。
参考
https://qiita.com/h-reader/items/9e2f8dbc3b9eaec4f5ee
https://www.it-mure.jp.net/ja/node.js/vuejs%E3%81%A7dotenv%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/838436806/
Author And Source
この問題について(【vue×firebase】Vue2.0で.envの利用法 ~APIkeyを隠そう~), 我々は、より多くの情報をここで見つけました https://qiita.com/app_js/items/69f9862f7f46fe06b795著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .