我正在使用Firestore数据库创建一个Vue JS应用程序,但在Firestore导入中可能存在问题(可能)。 它是一个简单的应用程序,只存储一些希望显示(最初)以测试其工作的员工详细信息。 (它没有!)它只是使用" firebase":" ^ 5.0.4",而不是vue-firebase或其他插件。
其Firestore不是Firebase实时数据库。
所以在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
并且没有数据显示到控制台,employees集合中有6个项目。
我也想知道&#34; a&#34;在a.collections中来自。
关于这个或更好的方法的任何提示,比如vue-firebase或其他,非常受欢迎。截图如下。
非常感谢
答案 0 :(得分:1)
问题在于如何从Firebase数据库检索数据
db.collections('employees')
请将其更新为
db.collection('employees')
这应该可以解决这个问题。
答案 1 :(得分:0)
您使用实时数据库(RTDB)服务声明数据库,而不是Firestore服务:
var db = firebase.database() // <- RTDB
您应该执行以下操作:
var db = firebase.firestore()
由于RTDB没有集合,因此您收到错误“集合不是函数”
仅供参考,这里记录了不同的可用服务:https://firebase.google.com/docs/web/setup#use_firebase_services,以及如何访问/声明它们。