GetUserByProviderAccountIdError 与 Google 和 Firebase 适配器 Next Auth
Posted
技术标签:
【中文标题】GetUserByProviderAccountIdError 与 Google 和 Firebase 适配器 Next Auth【英文标题】:GetUserByProviderAccountIdError with Google & Firebase Adapter Next Auth 【发布时间】:2021-11-23 02:41:03 【问题描述】:我试图在 Next Auth 中将 Google Provider 与 Firebase 适配器一起使用,一旦我选择了一个帐户,我就会收到以下错误:
我正在使用 Firebase 9
TypeError: client.collection is not a function
at getUserByProviderAccountId (C:\Users\veer4\Documents\Hridaya\Learning\Programming\React JS\google-docs\node_modules\@next-auth\firebase-adapter\dist\index.js:49:26)
at acc.<computed> (C:\Users\veer4\Documents\Hridaya\Learning\Programming\React JS\google-docs\node_modules\next-auth\dist\adapters\error-handler.js:19:22)
at Object.callback (C:\Users\veer4\Documents\Hridaya\Learning\Programming\React JS\google-docs\node_modules\next-auth\dist\server\routes\callback.js:72:51)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
name: 'GetUserByProviderAccountIdError'
我的页面/api/[...nextauth].js
import NextAuth from "next-auth"
import GoogleProvider from 'next-auth/providers/google'
import db from "../../../firebase-config"
import FirebaseAdapter from "@next-auth/firebase-adapter"
export default NextAuth(
// Configure one or more authentication providers
providers: [
GoogleProvider(
clientId: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
),
],
adapter: FirebaseAdapter(db),
)
【问题讨论】:
可能与问题无关,但next-auth
配置不应该在/pages/api/auth/[...nextauth].js
下吗?
是的,它在 auth 文件夹中,我在问题中写错了
【参考方案1】:
对于遇到相同问题的任何人,如果用户具有读写权限,请首先检查您的 Firestore 规则。 read more
【讨论】:
我试过了,但没有运气,它仍然显示同样的错误【参考方案2】:const firestore = (
firebase.apps[0] ?? firebase.initializeApp(/* here you should pass your config object */)
).firestore()
您的db
应该与firestore
const 完全一样,我不确定它是否相同,如果看起来不是这样,也许您应该更新您的问题。
https://next-auth.js.org/adapters/firebase
【讨论】:
对于 Firebase 9 ? 我有类似的,但有点不同 请也将其添加到您的问题中,也许那里有问题。const app = !getApps().length ? initializeApp(firebaseConfig) : FirebaseApp
const db = getFirestore();
这样对吗?以上是关于GetUserByProviderAccountIdError 与 Google 和 Firebase 适配器 Next Auth的主要内容,如果未能解决你的问题,请参考以下文章