Firebase ожидает, что первым аргументом для collection() будет ссылка на коллекцию, ссылка на документ или хранилище FirebaseFirestore

# #javascript #firebase #google-cloud-firestore #next.js #firebase-admin

Вопрос:

Я пытаюсь инициализировать SDK администратора в приложении NextJS. Я инициализировал приложение следующим образом:

 import { getFirestore } from '@firebase/firestore'; import admin from 'firebase-admin';  if (!admin.apps.length) {  admin.initializeApp({  credential: admin.credential.cert({  project_id: process.env.NEXT_PUBLIC_PROJECT_ID,  private_key: process.env.FIREBASE_PRIVATE_KEY,  client_email: process.env.FIREBASE_CLIENT_EMAIL  })  }); }  export default getFirestore();  

а затем попробуйте использовать базу данных в следующем фрагменте кода:

 import { getDocs, collection } from '@firebase/firestore'; import db from '@/lib/firebase-admin';  export default async (_, res) =gt; {  let sites = [];   const querySnapshot = await getDocs(collection(db, 'sites'));  querySnapshot.forEach((doc) =gt; {  sites.push(doc.id, ...doc);  });   res.status(200).json(sites); };   

Но мне представляется следующая ошибка: Следующая ошибка JS Firebase

FirebaseError: Ожидается, что первым аргументом collection() будет ссылка на коллекцию, ссылка на документ или хранилище FirebaseFirestore

Я использую компоненты Web V9 (модуль) Firebase, и мне еще предстоит выяснить, почему я получаю эту ошибку. Любая помощь будет очень признательна!

Комментарии:

1. import db from '@/lib/firebase-admin'; — бд-это не то, что ты думаешь. Попробуйте const db = getFirestore() добавить getFirestore в свой импорт.