【发布时间】:2021-06-28 19:54:55
【问题描述】:
我在 firestore 中有三个不同的数据库集合,我想将所有这些集合中的数据提取到我的管理面板表中。我必须从学生集合中获取学生的详细信息,从其他两个集合的反馈和详细信息中,我必须从详细信息集合中获取反馈和额外信息。首先,我正在获取我的学生收集数据,在我的管理表中,我必须获取反馈和表中的额外信息详细信息以及学生详细信息。 问题是我得到未定义的文档,在控制台中我得到没有找到文档!消息。
My code looks like this.
import React, { useEffect, useState } from 'react';
import MaterialTable from 'material-table';
import AdminNavbar from '../../layout/AdminNavbar';
import firebase from '../../../config/fbConfig';
const Dashboard = () => {
const [tableData, settableData] = useState({
id: "",
name: "",
course: "",
email: "",
phone: "",
createdAt:""
});
useEffect(() => {
getdata();
}, []);
async function getdata() {
const ref = firebase
.firestore()
.collection("students").doc();
ref.get().then((doc) => {
const feedbackdata = doc.data();
console.log(feedbackdata);
if (doc.exists) {
settableData({
id: feedbackdata.id,
name: feedbackdata.name,
course: feedbackdata.course,
email: feedbackdata.email,
phone: feedbackdata.phone,
createdAt: feedbackdata.createdAt
});
} else {
console.log("No doc found!");
}
});
}
const tableCol = [
{
title: "Student ID",
field: "id"
},
{
title: "Name",
field: "name"
},
{
title: "Course",
field: "course"
},
{
title: "Email",
field: "email"
},
{
title: "Phone",
field: "phone"
},
{
title: "Submitted at",
field: "createdAt"
}
];
return (
<>
<AdminNavbar />
<div className="table-div">
<MaterialTable
title={"Student's Feedback"}
data={tableData}
columns={tableCol}
options={{
headerStyle: {
backgroundColor: "#01579b",
color: "#FFF"
},
exportButton: true,
selection: false,
search: true
}}
/>
</div>
</>
);
}
export default Dashboard;
【问题讨论】:
-
.collection("students").doc()- 这里的.doc()需要您想要获取的文档的名称。您当前的用法似乎无效。有关示例,请参阅Firestore Docs - Read Data
标签: reactjs firebase google-cloud-firestore