【发布时间】:2021-10-24 14:37:53
【问题描述】:
我正在尝试在 React 中从 Firebase 获取数据。 我的数据结构如下:
我的代码目前如下所示:
fire.database().ref(outputClassName).once("value", snapshot => {
let classStudents = [];
snapshot.forEach(snapsh => {
//classStudents.push(snapsh.val());
let student = "";
student = snapsh.val();
alert(student);
fire.database().ref(outputClassName).child(student).once("value", snapsho => {
let studentSubjects = [];
snapsho.forEach(snaps => {
//studentSubjects.push(snaps.val());
fire.database().ref(outputClassName).child(student).child(snaps.val()).once("value", snapsh => {
let subjectNotes = [];
snapsh.forEach(snap => {
subjectNotes.push(snap.val());
});
studentSubjects.push(subjectNotes);
});
});
classStudents.push(studentSubjects);
});
});
setRenderData(classStudents);
});
我收到此代码的错误。有人可以帮我提供一个可行的解决方案吗?
【问题讨论】:
-
请编辑您的问题并将代码添加为文本而不是图像。此外,在这个用例中您是否需要实时监听器,或者您只想在运行
outputData()时获取一次数据? -
我只想在函数 outputData() 运行时获取数据。
-
好吧,你不应该使用
.on(),因为它会在数据库中发生更改时获取数据。请改用.once()。 -
我尝试使用“.once()”,但对于这行代码
fire.firebase().ref(outputClassName).child(student).on("value", snapshot => {仍然出现同样的错误,错误提示:firebase__WEBPACK_IMPORTED_MODULE_1__.default.firebase is not a function -
你试过我的答案了吗?而且你没有在你的问题中提到任何错误。你能添加错误的截图吗?
标签: javascript reactjs firebase firebase-realtime-database