如何解决当我使用 firebase 模拟器和 next.js
我使用 Next.js 和 firebase 模拟器。 我可以向 firestore 添加一些数据,但无法使用 firebase-admin 获取数据。 如何使用 firebase-admin 获取 api 数据。
// lib/firebaseAdmin.ts
const cert = {
projectId: process.env.FIREBASE_PROJECT_ID,clientEmail: process.env.FIREBASE_CLIENT_EMAIL,privateKey: process.env.FIREBASE_PRIVATE_KEY.replace(/\\n/g,"\n"),}
admin.initializeApp({
credential: admin.credential.cert(cert),})
admin.firestore();
// api/foos/[id].tsx
import { NextApiRequest,NextApiResponse } from 'next'
import 'lib/firebaseAdmin'
import { firestore } from 'firebase-admin'
export default async (req: NextApiRequest,res: NextApiResponse<ResType>) => {
const fooId = req.query.id as string
const doc = await firestore().collection('foo').doc(fooId).get();
const result = doc.id ? { id: doc.id,...doc.data() } : {}
res.status(200).json({
foos: result
})
}
解决方法
要对模拟器运行 firebase-admin
,请设置 FIRESTORE_EMULATOR_HOST
环境变量,并将其指向模拟器的 host:port
地址。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。