【发布时间】:2021-12-20 21:28:36
【问题描述】:
当我尝试使用时
adapter: FirebaseAdapter(firestore)
来自 -> https://next-auth.js.org/adapters/firebase
在 firebase v9 之后,next-auth 的文档没有更新。
我收到此错误:TypeError: collection is not a function
我的代码:
API 密钥和客户端密码已被替换为点 (...) 以隐藏它们。
import NextAuth from "next-auth";
import Providers from "next-auth/providers";
import { FirebaseAdapter } from "@next-auth/firebase-adapter";
import { getFirestore } from "firebase/firestore";
import { initializeApp, getApps } from "firebase/app";
import "firebase/firestore";
const firebaseConfig = {
apiKey: "...",
authDomain: "...",
projectId: "...",
storageBucket: "...",
messagingSenderId: "...",
appId: "...",
measurementId: "....",
};
const app = initializeApp(firebaseConfig);
const firestore = getFirestore(app);
const options = {
providers: [
Providers.Google({
clientId:
"...",
clientSecret: "...",
}),
],
adapter: FirebaseAdapter(firestore),
// database: process.env.MONGODB_URI,
};
export default (req, res) => {
NextAuth(req, res, options);
};
【问题讨论】:
-
你在哪里调用这个文件?记住,Next 是同构的,所以你必须非常精确地知道你在哪里进行这样的后端调用。我通常将这样的内容加载到
/lib文件夹中。 -
它在 [...nextauth].js 文件中。
-
我在 Next 中遇到了环境变量可见性问题几次。我会将一些
console.log()加入其中,看看它们是否通过,或者使用 VSCode 或类似中的断点逐步完成您的构建。
标签: firebase google-cloud-firestore next.js next-auth