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})
我在 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})