gpt4 book ai didi

javascript - FirebaseError : Expected first argument to collection() to be a CollectionReference, a DocumentReference 或 FirebaseFirestore,正在迁移到 v9 firebase

转载 作者:行者123 更新时间:2023-12-05 04:41:18 27 4
gpt4 key购买 nike

我正在努力迁移 firebase v8 -> v9。我有一个带有 Storybook 的组件库,用于演示组件。该库通过 NPM/Github 包作为包发布。

迁移没有给我带来任何麻烦,除了这个。在我的网络应用程序中导入和使用以下组件时出现问题。

下面的代码在 Storybook 中完美运行,但在将组件导入我的网络应用程序时失败。

const useGetLanguages = (firestoreInstance: Firestore): Response => {
const [loading, setLoading] = useState(false)
const [data, setData] = useState<ILanguage[]>([])
console.log('firestoreInstance: ', firestoreInstance) // Logs firestore instance

const fetch = useCallback(() => {
if (!firestoreInstance) return
setLoading(true)

const collectionRef = collection(firestoreInstance, 'data')
console.log('blip') // this logs fine
getDoc(doc(collectionRef, 'tags')) // crashes here...
.then(res => {
const data = res?.data()?.languages
if (data) {
const languages = (Object.values(data) as unknown) as ILanguage[]
if (languages) {
setData(languages.sort(sortBy('name')))
}
}
})
.finally(() => {
setLoading(false)
})
}, [firestoreInstance])

我最初使用:

getDoc(doc(firestoreInstance, 'data', 'tags'))

这在 Storybook 中也有效,但是在我的网络应用程序中使用此 Hook 导航到页面时,出现此错误:

Uncaught FirebaseError: Expected first argument to collection() to be a CollectionReference,a DocumentReference or FirebaseFirestore

我看过类似的问题,但没有解决问题。任何输入将不胜感激!

编辑:我正在像这样导入 firebase:

// firebaseConfig.ts

import { FirebaseOptions, initializeApp } from 'firebase/app'
import { getAuth } from 'firebase/auth'
import { getFirestore } from 'firebase/firestore'
import { getFunctions } from 'firebase/functions'

const config: FirebaseOptions = {
// ...config
}

export const app = initializeApp(firebaseConfig)
export const authInstance = getAuth(app)
export const firestoreInstance = getFirestore(app)
export const functionsInstance = getFunctions(app)

然后我导入 firestoreInstance 并将其传递给从包中导入的函数/组件。

我将尝试传递配置本身并在包中使用它并发布结果。

最佳答案

原来是我们这边失误了。我们需要在 package.json 中将 firebase 作为 peerDependency 安装。迁移到 MUI 5 时遇到了类似的问题。如果其他人遇到在您的情况下没有意义的模糊错误,可能值得一试,检查您的依赖项在哪里!

关于javascript - FirebaseError : Expected first argument to collection() to be a CollectionReference, a DocumentReference 或 FirebaseFirestore,正在迁移到 v9 firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70112941/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com