javascript - '没有创建 Firebase 应用程序'[DEFAULT]''即使调用了 initializeApp
问题描述
我正在尝试将 Firebase (Firestore) 添加到我的 Nuxt 项目中,但是在从firebase.firestore()
我的index.vue
文件中初始化 const 时收到以下错误:
未捕获的 FirebaseError:Firebase:没有创建 Firebase App '[DEFAULT]' - 调用 Firebase App.initializeApp() (app/no-app)。
我已经在我的项目中安装了 Firebase 以及模块 ( @nuxtjs/firebase
)。
我的 nuxt.config.js 文件如下所示:
export default {
...
plugins: ['~/plugins/firebase.js'],
components: true,
buildModules: [
'@nuxt/typescript-build',
'@nuxtjs/tailwindcss',
],
modules: [],
...
}
我的 firebase.js 文件位于我的插件文件夹中,如下所示:
import firebase from 'firebase/app'
const config = {
...
}
let app = null
if (!firebase.apps.length) {
app = firebase.initializeApp(config)
}
export default firebase
我已经将上述内容与其他在线示例进行了比较,并没有发现任何问题。但是,我对从 Nuxt 到 Firebase 的一切都是新手,所以我可能会遗漏一些明显的东西。任何建议表示赞赏。
解决方案
当您在初始化 firebase 之前尝试访问 firestore 时,通常会发生这种情况。因此,默认情况下,我们可以检查 firebase 是否已初始化,firebase.apps.length
但每次都初始化 firebase 并不是一个好习惯。
因此,如果您只使用 firestore,那么在您的插件中,您可以在初始化后直接导出 firestore,如下所示,
import firebase from 'firebase/app'
const config = {
...
}
let app = null
if (!firebase.apps.length) {
app = firebase.initializeApp(config)
}
export default firebase.firestore()
但是由于您使用的是 nuxt,所以有一个特殊的 nuxt 包,称为firebase/nuxt
安装后,您可以在模块部分的 nuxt config 中定义您的配置,如下所示,
modules: [
[
'@nuxtjs/firebase',
{
config: {
apiKey: '<apiKey>',
authDomain: '<authDomain>',
databaseURL: '<databaseURL>',
projectId: '<projectId>',
storageBucket: '<storageBucket>',
messagingSenderId: '<messagingSenderId>',
appId: '<appId>',
measurementId: '<measurementId>'
},
services: {
auth: true // Just as example. Can be any other service.
}
}
]
],
我认为这是在 nuxt.js 中使用 firebase 的更好方法
推荐阅读
- python - Facebook刮板'NoneType'对象在get_post时没有属性'find'
- c++ - 系统调用是线程安全的吗?
- javascript - iTunes Search Api 的问题 - 未捕获(承诺) SyntaxError:输入意外结束
- mysql - 无法创建 varchar(65535) 但无法创建 varchar(65536),为什么?
- dart - 解释 Dart Mixin 声明
- django - 如何只允许登录用户连接到 Django Channels 中的 websocket?
- javafx - 如何在运行时设置应用程序名称
- excel - 表单数据一直在第一行,不会向下移动到下一行?
- java - List.of 给出编译错误“对于 List 类型未定义 (char, char, char, char, char, char) 的方法”
- asp.net - 使用 htmlagilitypack 遍历 html 元素不起作用