NextAuth集成FirestoreAdapter触发TypeError错误求助
解决NextAuth.js FirestoreAdapter的TypeError: resolver is not a function问题
核心问题出在你的[...nextauth].js文件里NextAuth的调用方式错误——NextAuth只接受单个配置对象参数,你错误地把adapter作为第二个参数单独传入,导致API解析器无法识别,触发了resolver is not a function错误。
修正后的[...nextauth].js代码
import NextAuth from "next-auth"; import GoogleProvider from "next-auth/providers/google"; import LinkedInProvider from "next-auth/providers/linkedin"; import { FirestoreAdapter } from "@next-auth/firebase-adapter"; export const authOptions = { callbacks: { async redirect({ url, baseUrl }) { // Allows relative callback URLs if (url.startsWith("/")) return `${baseUrl}${url}`; // Allows callback URLs on the same origin else if (new URL(url).origin === baseUrl) return url; return baseUrl; }, }, // 把FirestoreAdapter放到authOptions对象内部 adapter: FirestoreAdapter(), // Configure one or more authentication providers providers: [ GoogleProvider({ clientId: process.env.GOOGLE_ID, clientSecret: process.env.GOOGLE_SECRET, }), LinkedInProvider({ clientId: process.env.LINKEDIN_CLIENT_ID, clientSecret: process.env.LINKEDIN_CLIENT_SECRET, }), ], }; // 仅传入authOptions一个参数 export default NextAuth(authOptions);
额外检查事项
- 确认
serviceAccountKey.json文件放在项目根目录,文件内容是从Firebase控制台下载的合法服务账号密钥 - 检查依赖版本兼容性:确保
next-auth和@next-auth/firebase-adapter使用匹配的稳定版本,避免版本冲突 - 验证Firestore数据库规则:开发阶段可暂时设置规则允许服务账号读写数据,上线后再调整为安全规则
内容的提问来源于stack exchange,提问作者Walid Daniel Dib
相关产品推荐
相关产品推荐

