Ошибка Vue / Firestore / Firebase при получении данных - PullRequest
0 голосов
/ 06 июня 2018

Я создаю приложение Vue JS с базой данных Firestore, но возникла проблема где-то в импорте Firestore (возможно).Это простое приложение, просто хранящее некоторые данные о сотрудниках, которые хотят быть отображены (изначально), чтобы проверить его работу.(Это не так!) Его просто используют "firebase": "^ 5.0.4", а не vue-firebase или другой плагин.

Его Firestore не в Firebase Real Time db.

Так что вКонфигурационный файл firebaseInit.js - это все основные параметры конфигурации, которые указаны ниже

import * as firebase from 'firebase'
// Initialize Firebase
var config = {
  apiKey: "AIzaSyCyKS3QxqtR9HvetpT2vWKFNxa_yeRKdhA",
    authDomain: "vuefsprod-fc778.firebaseapp.com",
    databaseURL: "https://vuefsprod-fc778.firebaseio.com",
    projectId: "vuefsprod-fc778",
    storageBucket: "vuefsprod-fc778.appspot.com",
    messagingSenderId: "1048509841840"
}
firebase.initializeApp(config)

var auth = firebase.auth()
var db = firebase.database()

export function signOut (callback) {
  auth.signOut().then(value => {
    callback()
  }, err => { callback(err) })
}
export default 'firebase/firestore'

А затем фрагмент сценария для проверки приведен ниже (в Helloworld.vue)

import db from '../firebaseInit'
  export default {
    name: 'home',
    data () {
      return {
        employees: [],
        loading: true
        }
      },
      created() {
       db.collections('employees').get().then(querySnapshot => {
       querySnapshot.forEach(doc => {
       console.log(doc)
       const data = {

       }
       })
       })
      }
    }

Yarn компилирует приложение, которое отображается, но в консоли появляется ошибка предупреждения, как показано ниже

[Vue warn]: Error in created hook: "TypeError: __WEBPACK_IMPORTED_MODULE_0__firebaseInit__.a.collections is not a function"

found in

---> <Home> at src/components/HelloWorld.vue

, и данные не отображаются на консоли, в коллекции сотрудников 6 элементов.

Мне также интересно, откуда взято "a" в a.collections.

Любые советы по этому или лучшему способу сделать это, например, с помощью vue-firebase или другого, более чем приветствуются.Снимок экрана ниже.

enter image description here

Большое спасибо

1 Ответ

0 голосов
/ 06 июня 2018

Вы объявляете базу данных с помощью службы базы данных реального времени (RTDB) вместо службы Firestore:

var db = firebase.database()  // <- RTDB

Вместо этого следует сделать следующее:

var db = firebase.firestore()

СRTDB не имеет коллекций, вы получаете ошибку «коллекции не являются функцией»

К вашему сведению, здесь описаны различные доступные службы: https://firebase.google.com/docs/web/setup#use_firebase_services, вместе с тем, как получить к ним доступ / объявить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...