Używam next.js i emulatorów Firebase. Mogę dodać pewne dane do Firestore, ale nie mogłem uzyskać danych z FireBase-Admin. Jak uzyskać dane API z FireBase-Admin.

// 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
  })
}
0
user15043202 24 marzec 2021, 12:39

1 odpowiedź

Najlepsza odpowiedź

Aby uruchomić firebase-admin w stosunku do emulatora, ustaw zmienną środowiskową FIRESTORE_EMULATOR_HOST i wskaż ją do adresu emulatora {x2}}.

0
Hiranya Jayathilaka 24 marzec 2021, 23:28