我使用vuexfire连接我的vue/vuex应用程序到Firebase Cloud Firestore。当实际连接到Firebase时,它可以正常工作。当使用Firebase模拟器时,它不起作用。
是否有一个特定的方式,Firebase模拟器需要连接,以允许Vuexfire连接?
最有效的是vue-cli-service serve
,然后打开一个新的终端并运行
firebase emulators:start --import=./saved-data --export-on-exit
我更改了firebase的设置。Json包含
"emulators": {
"firestore": {
"port": 8081
},
防止firestore模拟器和vue-cli开发服务器之间的任何冲突。
但是控制台给我这个错误:
Uncaught (in promise) FirebaseError:
false for 'get' @ L6
下面是firebase初始化:
firebase.initializeApp(firebaseConfig)
const auth = firebase.auth()
const db = firebase.firestore()
const func = firebase.functions()
const emulating = true
if (emulating) {
func.useEmulator('localhost', 5001)
//auth.useEmulator('http://localhost:9099/')
db.useEmulator('localhost', 8081)
}
和Vuex代码,(我认为)是导致错误:
bindProfile: firestoreAction(({ bindFirestoreRef, state }) => {
const pid = state.user.uid
console.log('Binding profile...')
return bindFirestoreRef('profile', db.collection('profiles').doc(pid))
}),
有没有人成功地使用Vuexfire与Firebase模拟器?
谢谢!
对我来说,它通过调用' db '来工作。useEmulator('localhost', 8081)' just before bindFirestoreRef
。
bindProfile: firestoreAction(({ bindFirestoreRef, state }) => {
const pid = state.user.uid
console.log('Binding profile...')
db.useEmulator('localhost', 8081) // dev mode
return bindFirestoreRef('profile', db.collection('profiles').doc(pid))
}),