javascript 在Next.js上使用getStaticProps时未呈现Firebase firestore信息

r3i60tvu  于 2023-09-29  发布在  Java
关注(0)|答案(1)|浏览(102)

我尝试使用Next.js的getStaticProps从firebase firestore获取数据。不使用getStaticProps,数据呈现正常,但当我使用它时,我得到错误
res.json()不是函数
这就是我的代码的样子

import React from 'react';
import { db } from '@/firebase';
import { collection, getDocs } from 'firebase/firestore';

     
export const getStaticProps = async () => {
    const res = await getDocs(collection(db, 'blogs'));
    const data = await res.json();

    return {
        props: {
            blogs: data
        }
    }
}

function index({blogs}) {
  return (
    <div>
        {blogs.map(blog => {
            <p>{blog.title}</p>
        })}
    </div>
  )
}

export default index

我能做错什么呢?

sqyvllje

sqyvllje1#

您似乎认为getDocs返回某种类似express的Response对象,但事实并非如此。
我建议查看一下展示如何使用getDocs()的文档和示例。它生成一个DocumentSnapshot对象,该对象没有json方法。
您的代码应该看起来更像文档中的示例:

const querySnapshot = await getDocs(q);
querySnapshot.forEach((doc) => {
  // doc.data() is never undefined for query doc snapshots
  console.log(doc.id, " => ", doc.data());
});

您将需要编写适当的代码,将所有DocumentSnapshot对象转换为您希望用户看到的任何内容。

相关问题