问题描述
好吧。假设我在firebase集合中有100个文档。我想获取其中的10个,但同时也需要获取总数,以实现创建分页的目的。
const updateDocuments = useCallback((documents,size) => {
dispatch({
type: actions.UPDATE_DOCUMENTS,payload: {documents,size}
});
},[]);
useEffect(() => {
const ref = db.collection('documents').orderBy('createdAt','desc');
const unsubscribe = ref.onSnapshot(async snapshot => {
const documents = await fetchDocuments(snapshot)
const length = await fetchDocumentsCount(snapshot)
updateDocuments(documents,length);
});
return () => {
unsubscribe();
}
},[updateDocuments]);
好吧,现在可以确定上面的快照将提取100个文档,并且总数也为100。专家们已经可以猜测到我使用上下文api,并且将100个文档和总数推送到下面的该对象,并且希望在我喜欢的任何组件中使用它。
const state = {
documents: [],size: 0
}
所以如果我创建引用为
const ref = db.collection('documents').orderBy('createdAt','desc').limit(10);
然后我会得到10个文档,但文档总数却变成10个。
那么我如何在相同的useEffect中获得10个文档,但是文档总数(在此示例中为100个)?
注意:
export const fetchDocuments = data => {
const documents= data.docs.map(doc => {
const { name,email} = doc.data();
return {
name,email,}
})
return documents;
}
export const fetchDocumentsCount = data => data.size;
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)