如何使用Javascript(Firebase实时数据库)检索嵌套数据?

yptwkmov  于 2022-11-17  发布在  Java
关注(0)|答案(1)|浏览(135)

我想从捐款中检索数据并将其显示在表中。我可以从Users中检索用户数据并将其显示在表中。但现在我不知道如何才能从捐款中检索数据。
这是我在Firebase中的数据库结构。输入的所有数据都来自Android Studio中创建的移动的应用。

这是我在检索用户数据时编写的代码。

function AddAllITemsToTable(User) {
            id=0;
            tbody.innerHTML="";
            User.forEach(element => {
                AddItemToTable(element.uid, element.fullName, element.organization, element.contactPerson, element.contactNo, element.location, element.emailAddress, element.status);
            });
        }

        function GetAllDataRealtime() {
            const dbRef = ref(database, 'Users');

            onValue(dbRef,(snapshot) => {
                var Users = [];

                snapshot.forEach(childSnapshot => {
                    Users.push(childSnapshot.val());
                });

                AddAllITemsToTable(Users);
            })

        }

        window.onload = GetAllDataRealtime;
dwbf0jvd

dwbf0jvd1#

由于您在/Users上调用onValue,因此您已经获得了所有用户及其所有捐赠的所有数据。

const dbRef = ref(database, 'Users');

onValue(dbRef,(snapshot) => {
    var Users = [];

    snapshot.forEach(userSnapshot => {
        Users.push(userSnapshot.val());
        userSnapshot.child("donation").forEach((donationSnapshot) => {
            console.log(donationSnapshot.key, donationSnapshot.val());
        });
    });

    AddAllITemsToTable(Users);
})

正如我在评论中所说的,我建议阅读Firebase关于结构化数据的文档,因为在每个用户下嵌套捐赠的方式并没有遵循嵌套数据和保持结构扁平的指导。

相关问题