获取所有 Firebase 子项和值并在 HTML 上显示

工程师

我试图从 Firebase 获取所有孩子的数据,并在 HTML 中的无序列表中显示数据。目前,我只能获取儿童“爱好”的数据。如何在“爱好”中没有硬编码的情况下获取“对象”下的所有子值?下面是我的 App.js 文件:

  (function() {

    //Initialize Firebase
    const config = {
        apiKey: "AIjjjewjfjewjfjwefwefew",
        authDomain: "xxxxxxxxx.firebaseapp.com",
        databaseURL: "https://xxxxxxxxx.firebaseio.com",
        storageBucket:"xxxxxxxxxx.appspot.com",
    };
    firebase.initializeApp(config);

    //Get elements
    const preObject = document.getElementById('object');
    const ulList = document.getElementById('list');
    var UID = ' ';
    var UIDArray = [];

    //Create refences
    const dbRefObject = firebase.database().ref().child('object');
    const dbRefList = dbRefObject.child('hobbies');

    dbRefObject.once("value").then(function(snapshot) {

    snapshot.forEach(function(childSnapshot) {

    var keys = childSnapshot.key;
    var values = childSnapshot.val();
    var name = values['Name'];
    var credit = values['Credits'];

    console.log(keys); //keys
    console.log(values); //values 
    console.log(name);//name
    console.log(credit);//name

    });
  });
    //const dbRefList = dbRefObject.child(UID);

    //Sync object changes
    dbRefList.on('value', snap => {
        preObject.innerText = JSON.stringify(snap.val(), null, 3);

    });

    //Sync list changes
    dbRefList.on('child_added', snap => {

        const li = document.createElement('li');
        li.innerText = snap.val();
        li.id = snap.key;
        var keyValue = snap.key;

        ulList.appendChild(li);

    });

    dbRefList.on('child_changed', snap => {

        const liChanged = document.getElementById(snap.key);
        liChanged.innerText = snap.val();
    });

    dbRefList.on('child_removed', snap => {

        const liToRemove = document.getElementById(snap.key);
        liToRemove.remove();
    });

}());

编辑:

谢谢您的帮助!我能够对它进行 console.log 并获取所有值!第二个注意事项,如果我想“监听”更改,例如在数据库中添加、删除或更改某些内容,并且我想在 HTML 列表中显示,我将如何实现?我将所有内容更改为 dbRefObject.on(child_changed', childSnapshot => )、child_removed'、childSnapshot => 等,但似乎不起作用。我试图将我之前的内容更改为以下内容:

(function() {

const config = {
        apiKey: "xxxxxxxxxxx",
        authDomain: "dxxxxx.firebaseapp.com",
        databaseURL: "https://xxxxx.firebaseio.com",
        storageBucket:"xxxxxxx.appspot.com",
    };
    //Initialize Firebase
    firebase.initializeApp(config);

    //Get elements
    const preObject = document.getElementById('object');
    const ulList = document.getElementById('list');
    var UID = ' ';
    var UIDArray = [];

    //Create refences
    const dbRefObject = firebase.database().ref().child('object');
    const dbRefList = dbRefObject.child('hobbies');

    dbRefObject.once("value").then(function(allSnapshot) {
        allSnapshot.forEach(function(snapshot) {
          snapshot.forEach(function(childSnapshot) {

    var keys = childSnapshot.key;
    var values = childSnapshot.val();
    var name = values['Name'];
    var credit = values['Credits'];
    var location = values['Location'];

    console.log(keys); //keys
    console.log(values); //values 
    console.log(name);//name
    console.log(credit);//name
    console.log(location);//name
    ulList.append(" ",name, " " , credit, " ", location );

    });
    });
  });

    //Sync object changes
    dbRefObject.on('value', childSnapshot => {
        preObject.innerText = JSON.stringify(childSnapshot.val(), null, 3);

    });

    //Sync list changes
    dbRefObject.on('child_added', childSnapshot => {

        console.log(childSnapshot.val())
        const li = document.createElement('li');
        li.innerText = childSnapshot.val();
        li.id = childSnapshot.key;
        var keyValue = childSnapshot.key;
        console.log(keyValue);
        ulList.appendChild(li);

    });

    dbRefObject.on('child_changed', childSnapshot => {
        console.log(childSnapshot.val());
        console.log(childSnapshot.key);
        const liChanged = document.getElementById(childSnapshot.key);
        liChanged.innerText = childSnapshot.val();

    });

    dbRefObject.on('child_removed', childSnapshot => {

        const liToRemove = document.getElementById(childSnapshot.key);
        liToRemove.remove();
    });

}());
弗兰克·范·普费伦

如果您想加载 下的所有数据dbRefObject,而不仅仅是hobbies您可以执行以下操作:

const dbAllList = dbRefObject;

dbRefObject.once("value").then(function(allSnapshot) {
  allSnapshot.forEach(function(snapshot) {
    snapshot.forEach(function(childSnapshot) {
      ...

更改相当简单:

  1. child('hobbies')从您收听的参考中删除了调用,这意味着once('value'现在将返回 JSON 树中更高级别的所有数据。
  2. allSnapshot.forEach(...)在回调中添加了一个额外的循环,以循环现在返回的所有子级。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Firebase 检索所有子值并显示

来自分类Dev

无法从php获取价值并在html上显示

来自分类Dev

Firebase - 获取所有子项并添加到 ListView

来自分类Dev

如何从 firebase 数据库中的所有子项获取特定值然后添加它?

来自分类Dev

从html字典属性获取所有值

来自分类Dev

获取HTML表单的所有值

来自分类Dev

将键和值添加到Firebase中JSON树中的所有子项

来自分类Dev

如何使用javascript和html一键向firebase数据库中的所有子项添加新数据

来自分类Dev

获取循环的所有输入值并显示

来自分类Dev

firebase 实时存储从所有子级获取特定值

来自分类Dev

HTML选择多个在onchange事件中获取所有值

来自分类Dev

如何使用JQuery在HTML表中获取所有值

来自分类Dev

Selenium和BeautifulSoup无法获取所有HTML内容

来自分类Dev

解析HTML文档获取具有ID和值的所有输入字段

来自分类Dev

将数据从Firebase显示到HTML网页上

来自分类Dev

获取多选的所有值并自动显示,无需选择值

来自分类Dev

获取Canvas X和Y坐标并在屏幕上显示

来自分类Dev

获取其中的所有子文件夹名称和所有html文件

来自分类Dev

获取其中的所有子文件夹名称和所有html文件

来自分类Dev

在html上显示带有html和php函数调用的php块

来自分类Dev

如何读取带有印地语字符的CSV文件并在html上显示?

来自分类Dev

显示HTML网页上的JavaScript变量的值?

来自分类Dev

如何在JSP页面年龄上获取地图并在表的两列中显示键和值

来自分类Dev

如何在 ListView 上获取所有孩子的数据 - Firebase 数据库

来自分类Dev

AJAX通过php从sql获取数据,然后将数据值显示到html元素上

来自分类Dev

Google图表显示v轴上的所有值

来自分类Dev

所有刻度值未在X轴上显示

来自分类Dev

在 x 轴上显示所有标签值

来自分类Dev

在列表视图上的选定项目上从 firebase 获取子项

Related 相关文章

  1. 1

    Firebase 检索所有子值并显示

  2. 2

    无法从php获取价值并在html上显示

  3. 3

    Firebase - 获取所有子项并添加到 ListView

  4. 4

    如何从 firebase 数据库中的所有子项获取特定值然后添加它?

  5. 5

    从html字典属性获取所有值

  6. 6

    获取HTML表单的所有值

  7. 7

    将键和值添加到Firebase中JSON树中的所有子项

  8. 8

    如何使用javascript和html一键向firebase数据库中的所有子项添加新数据

  9. 9

    获取循环的所有输入值并显示

  10. 10

    firebase 实时存储从所有子级获取特定值

  11. 11

    HTML选择多个在onchange事件中获取所有值

  12. 12

    如何使用JQuery在HTML表中获取所有值

  13. 13

    Selenium和BeautifulSoup无法获取所有HTML内容

  14. 14

    解析HTML文档获取具有ID和值的所有输入字段

  15. 15

    将数据从Firebase显示到HTML网页上

  16. 16

    获取多选的所有值并自动显示,无需选择值

  17. 17

    获取Canvas X和Y坐标并在屏幕上显示

  18. 18

    获取其中的所有子文件夹名称和所有html文件

  19. 19

    获取其中的所有子文件夹名称和所有html文件

  20. 20

    在html上显示带有html和php函数调用的php块

  21. 21

    如何读取带有印地语字符的CSV文件并在html上显示?

  22. 22

    显示HTML网页上的JavaScript变量的值?

  23. 23

    如何在JSP页面年龄上获取地图并在表的两列中显示键和值

  24. 24

    如何在 ListView 上获取所有孩子的数据 - Firebase 数据库

  25. 25

    AJAX通过php从sql获取数据,然后将数据值显示到html元素上

  26. 26

    Google图表显示v轴上的所有值

  27. 27

    所有刻度值未在X轴上显示

  28. 28

    在 x 轴上显示所有标签值

  29. 29

    在列表视图上的选定项目上从 firebase 获取子项

热门标签

归档