【发布时间】:2022-01-03 17:46:40
【问题描述】:
我正在使用 react 和 firebase/firestore 制作一个简单的 CRUD 应用程序。
我目前有一个包含四条记录的“产品”集合。
主页循环显示产品并显示它们:
import React, { useEffect, useState } from 'react'
import { getDocs, collection } from "firebase/firestore"
import { db } from "../firebase-config"
const Home = () => {
const [products, setProducts] = useState([])
const productsCollectionRef = collection(db, "products")
useEffect(() => {
const getProducts = async () =>{
const data = await getDocs(productsCollectionRef)
setProducts(data.docs.map((doc) => ({...doc.data(), id: doc.id})))
}
getProducts()
})
return (
<div>
{products.map((product) => {
return(
<div>
<div>{product.name}</div>
<div>{product.sku}</div><br />
</div>
)
})}
</div>
)
}
export default Home
我使用该应用程序不到一个小时,可能刷新了大约 10-20 次,并且读取次数在一小时内从 30 次跃升至现在的 35,000 多次。
起初,我以为这个简单的应用程序每天可以免费阅读 50,000 次免费文档,但它到底是如何达到 35k+ 的呢?
我让页面在那儿呆了一个小时,没有做任何事情,但数量仍然迅速增加。
知道我可以做些什么来改变这一点吗?
非常感谢您的建议!
如果您需要任何其他信息,请告诉我...
【问题讨论】:
-
您可能希望在调用
getDocs之前直接在getProducts中添加console.log("reading db")。我的预期是它的执行频率比您预期的要高。 -
它是由useEffect()触发的,没有依赖关系,尝试在useEffect块末尾添加一个[]。
标签: reactjs firebase google-cloud-firestore