我如何访问firebase FirebaseError:期望第一个参数的集合()是一个CollectionReferen



我试图在Next.Js项目中使用Firebase,但我一直得到Firebase 9.8这个错误

firebase.js

import { getApp, initializeApp } from "firebase/app";
import { getFirestore } from "firebase/firestore/lite";
const firebaseConfig = {
Some config details
};
function createFirebaseApp(config) {
try {
return getApp();
} catch {
return initializeApp(config);
}
}
const app = createFirebaseApp(firebaseConfig);
const db = getFirestore(app);
export default db;

和我试图加载它的页面是下面的

import { getSession} from "next-auth/react";
import React from "react";
import db from "../../firebase";
import { collection, doc, getDocs } from "firebase/firestore/lite";
export async function getServerSideProps(context) {
const stripe = require("stripe")(process.env.STRIPE_SECRET_KEY);
const session = await getSession(context);
if (!session) {
return {
props: {},
};
}
const docRef = collection(db, `users/${session.user.email}/orders`);
getDocs(docRef)
.then((snapshot) => {
let user = [];
snapshot.docs.forEach((sdoc) => {
user.push({ ...sdoc.data(), id: sdoc.id });
});
console.log(user);
})
.catch((err) => console.log(err));
}

我得到这个错误

[FirebaseError: Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore] {
code: 'invalid-argument',
customData: undefined,
toString: [Function (anonymous)]
}

我也试过简单地获得用户

collection(db, 'users');

如果使用旧的firebase,它应该是

const firebaseOrders = await db
.collection("users")
.doc(session.user.email)
.collection("orders")
.orderBy("timestamp", "desc");

如何使用顺序集合和嵌套集合来访问它?Firebase文档似乎没有涉及到这一点。

如果我记录db对象,我得到这个配置细节

Firestore {
_authCredentials: LiteAuthCredentialsProvider { auth: null },
_appCheckCredentials: LiteAppCheckTokenProvider {
appCheckProvider: Provider {
name: 'app-check-internal',
container: [ComponentContainer],
component: null,
instances: Map(0) {},
authDomain: ,
projectId: ,
storageBucket: ,
messagingSenderId: ,
appId: ,
measurementId: 
},
_config: { name: '[DEFAULT]', automaticDataCollectionEnabled: false },
_name: '[DEFAULT]',
_automaticDataCollectionEnabled: false,
_container: ComponentContainer { name: '[DEFAULT]', providers: [Map] }
},
_databaseId: DatabaseId { projectId: '', database: '(default)' }
}

有这个问题,在我的情况下,我是导入firebase/firestore/lite

尝试移除lite

最新更新