【问题标题】:How to retrieve the data from firebase JSON using JavaScript for each one of object如何使用 JavaScript 为每个对象从 firebase JSON 检索数据
【发布时间】:2016-04-10 15:29:54
【问题描述】:

这是我的 JSON 和代码,它只提供数组但不提供值。因为我使用 push 它从中生成唯一 ID,但我没有得到。存储在该 id 中的所有值。

{
  "nitin" : [ {
    "mobile" : {
      "-K7GalDi5aAahDENCRi" : {
        "name" : "file:///D:/Software%20Drive/addItem.html?category=mobile",
        "price" : 345,
        "quantity" : 34
      }
    },
    "perfume" : {
      "-K7K7HSu4rQNwbH3ud0H" : {
        "name" : file:///D:/Software%20Drive/addItem.html?category=perfume",
        "price" : 1000,
        "quantity" : 20
      }
    }
  }]
}

这是我的代码

  fbref.on("value", function(snapshot) {
      var newPost = snapshot.val();
      console.log(newPost);
      fbref.on("child_added", function(newPost,pre){
          newchild=newPost.val();
          console.log(newchild); 
          var n=newPost.key();
          console.log("this is key"+n);
          console.log("Name"+newchild.name);
          console.log("Price"+newchild.price);
          console.log("Quantity"+newchild.quantity);
      });  
  });

【问题讨论】:

标签: javascript json firebase firebase-realtime-database


【解决方案1】:

child_added 事件将在您正在查询的位置直接添加子节点时触发。

因此,如果您正在查询所显示的 JSON 的根,child_added 将为 nitin 触发。然后,如果我们添加pufchild_added 也会为此触发。

{
  "nitin" : [ {
    ...
  }],
  "puf": [ {
    ...
  }],
}

如果您想为 mobileperfume 内的项目接收 child_added,则需要在这些项目的父节点上附加 child_added

fbref.child('nitin').child(0).child('mobile').on('child_added'...

或者:

fbref.child('nitin/0/mobile').on('child_added'...

请参阅 this jsbin 了解此工作示例。

【讨论】:

  • 谢谢@Frank van Puffelen,但这个程序是由我完成的。我想要的是如何去寻找下一个对象,那就是香水。我再次根据您的建议创建了一个新变量,但它应该自动检查是否存在更多节点并显示该节点
  • 如何进入香水、手机......并把他们的钥匙放在它们下面并展示它们。还让我知道如何创建要递增的数组索引,这样我就可以避免推送生成的唯一键,并使用纯数组而不是 id 获取数据。
  • “避免使用 push 生成的唯一键,并使用纯数组而非 id 获取数据”-> Firebase 建议不要使用数组索引是有原因的:firebase.com/docs/web/guide/…
猜你喜欢
  • 2018-07-19
  • 1970-01-01
  • 1970-01-01
  • 2021-11-05
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多