You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 02:40:45