How do i solve this error: FirebaseError: Expected type 'mc', but it was: a custom yc object?

How do i solve this error: FirebaseError: Expected type 'mc', but it was: a custom yc object?

我在 Nextjs (js) 和 Firebase 上创建了一个应用程序。并且我添加了 Stripe 扩展来制作订阅系统。我对 firebase 的这个新版本 9 不是很有经验,所以很难做到这一点,因为我遵循了使用版本 8 和 ts 的教程。我仍然设法使大部分事情正常工作,除了这给了我这个错误。

这是教程:https://youtu.be/P0Udy2Gi7n8?t=859(我的问题在 14:19)

我这里有错误:

import getStripe from "./initializeStripe";
import { db } from '../firebase/firebaseClient'
import { doc, getDoc, addDoc, setDoc, setCol, onSnapshot, collection } from "firebase/firestore";

export async function createCheckoutSession(uid) {

    const docData = {
        price: "price_1KvNgoI6qyGEmrlgKU3miVmT",
        success_url: window.location.origin,
        cancel_url: window.location.origin,
    };
  
    const checkoutSessionRef = await setDoc(collection(db, "users", uid, "checkout_sessions"), docData); //ERROR


    onSnapshot(getDoc(doc(checkoutSessionRef)), (snap) => {
        const { sessionId } = snap.data();

        if (sessionId) {
            // We have a session, let's redirect to checkout
            // Init Stripe
            const stripe = getStripe();
            stripe.redirectToCheckout({ sessionId })
        }
    });

错误如下:

未处理的运行时错误 FirebaseError:预期类型 'mc',但它是:自定义 yc 对象

Browser

Firebase config

setDoc() 取一个 DocumentReference as first parameter but you are passing a CollectionReference。尝试使用 addDoc() 代替:

await addDoc(collection(db, "users", uid, "checkout_sessions"), {...data})

这将添加一个具有随机生成的文档 ID 的文档。如果你想使用自己指定的文档,那么你可以使用 setDoc() 如下所示:

await setDoc(doc(db, "users", uid, "checkout_sessions", "DOC_ID"), {...data})