【发布时间】:2020-07-30 12:43:05
【问题描述】:
我正在尝试将 Nuxt 2.14 与 firebase firestore 连接
我正在编写一个在 服务器
上运行的 firebase 插件
我正在使用“注入”将firebase.firestore() 对象作为数据库传递。
但是,当我使用刚刚注入的 $db 时
并尝试通过 asyncData 使数据变量等于 $db,
我收到一个错误:
"超过最大调用堆栈大小"
我猜 firebase.firestore() 对象有一个“圆形结构”
有什么建议吗?
我应该以不同的方式处理这个问题吗?
谢谢
这是我正在使用的不同文件的代码:
.env
FB_DB_PATH=XXXXXX
FB_API_KEY=YYYYYY
FB_PROJECT_ID=ZZZZZZ
FB_AUTH_DOMAIN=EEEEEEE
nuxt.config.js
plugins: [
{ src: '~plugins/firebase.js', mode: 'server' },
// runs on server to get the firebase privateRuntimeConfig params
],
publicRuntimeConfig: {
baseURL: process.env.BASE_URL // just for test
},
privateRuntimeConfig: {
fbProjectID: process.env.FB_PROJECT_ID,
fbDBPath: process.env.FB_DB_PATH,
fbApiKey: process.env.FB_API_KEY,
fbAuthDomain: process.env.FB_AUTH_DOMAIN
},
firebase.js - 这是插件文件
import firebase from 'firebase/app';
import 'firebase/auth';
import 'firebase/firestore';
export default function (context, inject) {
if (!firebase.apps.length) {
firebase.initializeApp({
apiKey: context.$config.fbApiKey,
authDomain: context.$config.fbAuthDomain,
//databaseURL: context.$config.fbDBPath,
projectId: context.$config.fbProjectID
})
}
let auth = firebase.auth();
let db = firebase.firestore();
inject('db', db);
}
在页面代码中:
asyncData ( context ) {
return { db: context.$db }
}
【问题讨论】:
标签: javascript firebase nuxt.js