'firebase'未定义 - Vue.js

时间:2018-06-18 15:35:33

标签: javascript firebase vue.js

我正在使用firebase来记录用户,但是控制台抱怨没有定义firebase。 我正在导入,firebase,我根据firebase给你的文档正确设置了我的配置,但仍然没有运气。

import Vue from 'vue'
import App from './App.vue'
import VeeValidate from 'vee-validate';
import router from './router';
import firebase from 'firebase';
Vue.use(VeeValidate);
Vue.config.productionTip = false
// Initialize Firebase
 var config = {
   apiKey: "<my api key>",
   authDomain: "<my auth domain>",
   databaseURL: "<my database url>",
   projectId: "todo-bb5d3",
   storageBucket: "",
   messagingSenderId: "638496899966"
 };
 firebase.initializeApp(config);


new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

导致问题的文件:

<template>
    <div class="LogIn">
      <h3>Sign Up</h3>
      <input type="email" v-model="email" placeholder="email" name="" value="">
      <input type="passeord" v-model="password" placeholder="password" name="" value="">
      <button v-on:click="signUp" type="button" name="button">Sign Up</button>
    </div>
</template>


<script>
  export default{
    name: 'LogIn',
    data: function() {
      return{
        email: '',
        password: ''
      }
    },
    methods: {
      signUp: function(){
        firebase.auth().createUserWithEmailAndPassword(this.email, this.password).then(
          function(user){
            alert('Your account has been created')
          },
          function(err) {
            alert('Opps! ' + err.message)
          }
        )
      }
    }
  }
</script>

2 个答案:

答案 0 :(得分:1)

您必须在导致问题的&#34;文件中导入firebase&#34;。

import firebase from 'firebase';

在这里粘贴你的api密钥也不是一个好主意,即使对于测试应用,我建议你编辑你的帖子并编辑它。

答案 1 :(得分:0)

一种解决方案是在created实例生命周期钩子中按如下方式初始化它:

new Vue({
  router,
  render: h => h(App),
  created() {
    firebase.initializeApp(
      {
        apiKey: "...",
        authDomain: "....",
        databaseURL: "..."
        ...
      }
    )
  }
}).$mount('#app')