我正在尝试使用getInitialProps从firebase到我的next.js应用程序中获取数据,但数据会显示在VS Code终端中(以及一些错误)。但是,在浏览器中,我收到此消息
请检查代码
// Other import code
import { firestore } from "../firebase/firebase.utils";
const Hotels = (props) => {
return (
// jsx code
);
};
Hotels.getInitialProps = async (ctx) => {
let hotelsRef = firestore.collection("hotels");
let query = hotelsRef
.get()
.then((snapshot) => {
if (snapshot.empty) {
console.log("No matching documents.");
return;
}
snapshot.forEach((doc) => {
console.log(doc.id, "=>", doc.data());
return { props: doc.data() };
});
})
.catch((err) => {
console.log("Error getting documents", err);
});
};
export default Hotels;
感谢您的帮助。
答案 0 :(得分:0)
我认为您应该从getInitialProps
的对象返回,但是在您的情况下,您什么也不返回,也没有使用async await
您在这里:
Hotels.getInitialProps = async (ctx) => {
let hotelsRef = firestore.collection("hotels");
let snapshot = await hotelsRef.get()
if (snapshot.empty) {
console.log("No matching documents.");
return;
}
let data = []
snapshot.forEach((doc) => {
console.log(doc.id, "=>", doc.data());
data.push(doc.data());
});
return { props : data };
};