LoginSignup
2
3

More than 3 years have passed since last update.

Javascriptは書く順番が大切

Posted at

Vue.jsを書いていて、どうしても動かずハマってしまった部分がありました。
FirebaseをWebアプリに連携しようとして、 main.js に以下のように記述していました。


<script>
import { firestorePlugin } from 'vuefire'
    import firebase from 'firebase'
    import 'firebase/firestore'

    Vue.use(firestorePlugin)

    export const db = firebase.firestore()
    export const auth = firebase.auth()

    Vue.config.productionTip = false

    firebase.initializeApp({                
      apiKey: "",
      authDomain: "",
      databaseURL: "",
      projectId: "",
      storageBucket: "",
      messagingSenderId: "",
      appId: ""
    })

</script>

scriptは上から下に向けて実行されるため、これだと db のインスタンスを作成する場合にfirebaseの認証がされていないことになります。
そのため、 db のインスタンスが作成されず、表示することができませんでした。
正しくは、 firebase.initializeAppdb のインスタンス作成より前に書き、


<script>
import { firestorePlugin } from 'vuefire'
    import firebase from 'firebase'
    import 'firebase/firestore'

    Vue.use(firestorePlugin)

   firebase.initializeApp({                
      apiKey: "",
      authDomain: "",
      databaseURL: "",
      projectId: "",
      storageBucket: "",
      messagingSenderId: "",
      appId: ""
    })

    export const db = firebase.firestore()
    export const auth = firebase.auth()

    Vue.config.productionTip = false



</script>

とすることで解決します。
またひとつ前進しました。

2
3
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
2
3