如何使用 VueFire 在 Nuxt 3 服务器路由中访问 Firestore 集合

问题描述 投票:0回答:0

我正在构建一个允许用户从 Firestore 集合中呈现 RSS 提要的应用程序。我的解决方案是使用一个 Nuxt 服务器路由,它返回一个通过 RSS 提要生成器呈现的 XML 文件。

出现的问题是我终生无法弄清楚如何在服务器路由中访问 Firestore。 VueFire 的文档,我用来与 Firebase 交互的处理程序,状态

“你不需要做任何特别的事情来让它与 SSR 一起工作,一切都是自动处理的。”

这个简单的行除了让我烦恼之外什么也没做,因为访问 Firestore 的任何常用方法(

useFirestore()
getCurrentUser()
,是两个例子)都会失败并出现
(app/no-options)
错误。

这是失败代码的示例。我将此代码基于 VueFire 文档中的中间件示例


// server/routes/[user]/rss.js
import { useFirestore } from 'vuefire'

export default defineEventHandler(async event => {
    const db = await useFirestore();
})

我在这里错过了什么?为什么 VueFire 无法在服务器路由和仅服务器路由中初始化?谢谢。

我尝试过的事情:

  • 我使用了 this repo 的知识来确保正确启用 SSR
  • 我探索了将 SSR 与 Nuxt 3 结合使用的多个指南,但是 Stack Overflow 上的所有这些指南以及其他指南都忽略了服务器路由系统

我的最终解决方案是手动导入 Firebase Admin,但这似乎与“您不需要做任何特殊操作即可使其与 SSR 一起工作”这句话有悖常理

firebase google-cloud-firestore nuxt.js nuxtjs3 vuefire
© www.soinside.com 2019 - 2024. All rights reserved.