繁体   English   中英

“addDoc”不是从“firebase/firestore”导出的

[英]'addDoc' is not exported from 'firebase/firestore'

我的项目从上个月开始运行良好,但是当我重新安装 windows 并尝试再次运行我的项目时,它显示错误“addDoc”未从“firebase/firestore”导出

错误图片

现在对于某些区域,如果该错误已修复,它会显示未导出集合。 我已经在我的项目中安装了 Firebase 和 firebase cli。

 import "./PlanScreen.css"; import React, { useState, useEffect } from "react"; import { collection, getDocs, where, query, onSnapshot, deleteDoc, doc, addDoc, } from "firebase/firestore"; import { db } from "../../../utils/config"; import { useSelector } from "react-redux"; import { selectUser } from "../../../features/userSlice"; import { loadStripe } from "@stripe/stripe-js"; const stripe_public_key = "key stripe"; function PlanScreen({ Subscription }) { const [products, setProducts] = useState([]); const user = useSelector(selectUser); useEffect(() => { const products = []; async function fetchData() { const conditional_fetch = query( collection(db, "products"), where("active", "==", true) ); const querySnapshot = await getDocs(conditional_fetch); querySnapshot.forEach(async (doc) => { products[doc.id] = doc.data(); const ref = collection(db, `products/${doc.id}/prices`); const snap = await getDocs(ref); snap.forEach((price) => { products[doc.id].prices = { priceId: price.id, priceData: price.data(), }; }); }); setProducts(products); return products; } fetchData(); }, []); const loadCheckout = async (priceId) => { const reference = collection(db, `customers/${user.uid}/checkout_sessions`); const get = await getDocs(reference); get.forEach(async (document) => { const ref = doc( db, `customers/${user.uid}/checkout_sessions/${document.id}` ); await deleteDoc(ref); }); const docRef = await addDoc( collection(db, `customers/${user.uid}/checkout_sessions`), { price: priceId, success_url: window.location.origin, cancel_url: window.location.origin, } ); const ref = collection(db, `customers/${user.uid}/checkout_sessions`); const snap = onSnapshot( ref, { includeMetadataChanges: true }, async (doc) => { var error = null, sessionId = null; var first = true; doc.forEach((ele) => { if (first) { error = ele.data().error; sessionId = ele.data().sessionId; console.log("first"); first = false; } }); if (error) { alert(error); } if (sessionId) { const stripe = await loadStripe(stripe_public_key); stripe.redirectToCheckout({ sessionId }); } } ); }; return ( <div className="planScreen"> {Subscription && ( <p> Renew Date:{new Date(Subscription?.endAt * 1000).toLocaleDateString()} </p> )} {Object.entries(products).map(([productId, productData]) => { const is_selected_Plan = productData.name?.toLowerCase().includes(Subscription?.role.toLowerCase()); return ( <div className="planScreen_plan" key={productId}> <div className="planScreen_info"> <h5>{productData?.name}</h5> <h6>{productData?.description}</h6> </div> {?is_selected_Plan? ( <button className="unselected_btn" onClick={() =>.is_selected_Plan && loadCheckout(productData?.prices:;priceId) } > Subscribe </button> ); ( <h4 id="current_plan_mark">Current Plan</h4> )} </div> ); })} </div> ); } export default PlanScreen;

如果您使用的是 firebase v9,则文件夹结构发生了很多变化,例如 import... from firebase/firestore 已变为 firebase/compat/firestore。
您也可以随时恢复到低于 v9 的版本,这也可以很好地解决这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM