为什么Firestore在使用Next js 13读取单个文档时会假设读取多个文档?

v8wbuo2f  于 2023-06-22  发布在  其他
关注(0)|答案(1)|浏览(97)

我在Next js 13的页面中获取了3个文档,但Firebase将其视为10个文档读取。当重定向到一个细节页面,其中我只提取了一个文档,它计数为4个文档读取。(计数是不可预测的)。我甚至检查了我的代码,我没有运行它在一个循环。
对于一个单一的文档阅读/详细页这里是如何做的

export async function page({ params: {itemid}}) {

const itemData = getItem(itemid);

  const [item] = await Promise.all([itemData]);

return (
   ... code here
)

}

getItem如下

import { doc, getDoc } from "firebase/firestore/lite";
import { db } from "../firebase";

export default async function getItem(itemid) {
  const docRef = doc(db, "itemPosts", itemid);
  const docSnap = await getDoc(docRef);

  return docSnap.data();
}

也许这是B/C发生的,当我把prop传递给一个组件时,我没有破坏它。I m按原样传递该值。
我就像
<HeadTitle item={item} />
而不是只传递我需要的值

<HeadTitle
 title={item.title}
 location={item.location}
 price={item.price}
/>

我不知道这对它有没有影响。但我的firebase把它算为一个文档的多次读取。任何帮助请

xytpbqjk

xytpbqjk1#

读取1个文档不等于读取1个文档。正如here所回答的,在获取文档期间发生了几次收费读取(例如获取集合列表、读取文档ID、读取所选文档的数据等)。
正如回答this的firebaser所说,firebase方面肯定有一些优化的空间。

相关问题