[Vue警告]:创建的挂钩中出现错误:“ TypeError:__WEBPACK_IMPORTED_MODULE_0__firebase_init __。a.firestore不是函数”

时间:2020-05-11 15:45:57

标签: firebase vue.js

当我尝试运行页面时出现此错误,该页面显示了存储在Firestore数据库中的用户信息。

页面脚本:

<script>
import db from '@/firebase/init'
import firebase from 'firebase'
export default {
 data(){
     return{
        users: []
     }
 },
 created(){
    let user = firebase.auth().currentUser 
    db.firestore().collection('users').where('user_id', '==', user.uid).get()
    .then(snapshot => {
        let usersArray = [];
        snapshot.forEach((doc) => {
             usersArray.push(doc.data());
        })
        this.users = usersArray;
      })
 }
}
</script>

firebase初始化文件(不包括有关我的api密钥,数据库ID等的个人信息)

import * as firebase from 'firebase/app';
import 'firebase/firestore';
var firebaseConfig = {

  };
  const firebaseApp = firebase.initializeApp(firebaseConfig);
  firebaseApp.firestore().settings({ timestampsInSnapshots: true })
  export default firebaseApp.firestore()

这是路由器设置。 (我确实也记得在这里导入Firebase)

import Vue from 'vue'
import Router from 'vue-router'
import Index from '@/components/Index'
import Userinfo from '@/components/Userinfo'
import firebase from 'firebase'

Vue.use(Router)

const router = new Router({
  routes: [
    {
      path: '/',
      name: 'Index',
      component: Index,
    },
    {
      path: '/profile',
      name: 'Userinfo',
      component: Userinfo,
    }
  ]
})    

router.beforeEach((to, from, next) => {
      if(to.matched.some(rec => rec.meta.requiresAuth)) {
        let user = firebase.auth().currentUser
        if(user){
          next()
        } else{
          next({ name: 'Login' })
        }
      } else{
        next()
      }
    })
    export default router

1 个答案:

答案 0 :(得分:0)

好的,所以我解决了这个问题。 解决的办法就是改变

db.firestore().collection('users')

收件人:

db.collection('users')