我有一个 Sveltekit 应用程序,它使用 Firebase 进行身份验证和 Cloud Firestore。使用 Firebase 模拟器在本地运行应用程序,一切正常。使用 Vercel 进行部署时,我将服务器配置为使用 Firebase 服务帐户,并且客户端具有 Firesbase 提供的客户端配置。
当我真正运行通过 Vercel 部署的应用程序时,我得到以下行为。
singletons-a6a7384f.js:259 GET https://my-firebase-project.firebaseapp.com/__/firebase/init.json 404(未找到)
我可以确认 url 中的项目名称
my-firebase-project
是正确的,并且与 Firebase 控制台中提供的内容以及 Firebase 生成的配置相匹配。
在我的 package.json 中我正在使用
"firebase": "9.0.1",
"firebase-admin": "^9.10.0",
有谁知道可能导致此错误的原因是什么?
我的问题非常具体于我的代码库(最初不是我编写的。)
Firebase 返回的令牌由 svelte 使用由名为
VITE_JWT_KEY
的环境变量控制的私钥进行加密。我的部署中未设置此环境变量。加密令牌的代码具有默认密钥值,但从会话 cookie 中解密令牌的代码默默失败,导致授权失败。
我相信原作者是基于一些公开的“firebase + svelte”教程和演示来编写此代码库的,因此这可能对其他人有帮助。