最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to iterate over firebase data object to list - Stack Overflow

programmeradmin5浏览0评论

 this.fb.getShoppingItems().then(result =>{
   this.exercises=result;
   console.log("this exercise : ");
   console.log(this.exercises);
 })

I should list firebase data but getting error like below

Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays.

first pic is my firebase data structure and second one is console.log result.

in html , I should iterate over exercises came from firebase data(interval_time, name, rest_time, time)

I think I should iterate over . for each date node like 20170710/20170711 ... How can I do that?

 this.fb.getShoppingItems().then(result =>{
   this.exercises=result;
   console.log("this exercise : ");
   console.log(this.exercises);
 })

I should list firebase data but getting error like below

Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays.

first pic is my firebase data structure and second one is console.log result.

in html , I should iterate over exercises came from firebase data(interval_time, name, rest_time, time)

I think I should iterate over . for each date node like 20170710/20170711 ... How can I do that?

Share Improve this question edited Jul 11, 2017 at 15:36 Frank van Puffelen 599k85 gold badges889 silver badges859 bronze badges asked Jul 11, 2017 at 14:55 Pd.JungPd.Jung 1131 gold badge3 silver badges13 bronze badges
Add a ment  | 

3 Answers 3

Reset to default 10

For JavaScript I would do

firebase.database().ref("profile/user_id").on('value', function(snap){

   snap.forEach(function(childNodes){

      //This loop iterates over children of user_id
      //childNodes.key is key of the children of userid such as (20170710)
      //childNodes.val().name;
      //childNodes.val().time;
      //childNodes.val().rest_time;
      //childNodes.val().interval_time;


  });
});

I figured out this way

this.service.GetBlogs().subscribe(
  response=>{
     console.log(response);


    for(let i in response)
    {
     console.log(response[i].Title);  
    }
  }
);

response[i].Title is the main solution of problemm

I have a database like this
5bs_es1
   |
   dasdaskj
   |    |
   |   domanda1: "qualcosa..."
   | 
   |
   |
   sfjdk
       |
      domanda1: "fkfgdfh"
       |
      domanda2: "fsdjfhjsdhfj"

I use this function to get all the child values

function retrieveData(){

let ref = firebase.database().ref().child("5bs_es1");

  ref.on('value', function(snapshot) {
      let snap = snapshot.val();
      for (i in snap){
       console.log("\n" + i);
        for (n in snap[i]){
             console.log(n, snap[i][n])     
      }
  }
  });
}

Another example

It is easy to iterate this way, after the configuration code, putting data into a div called 'prosegui', for example:

<div id="prosegui"></div>

  let database = firebase.database();
  let ref = database.ref("BEP");

  ref.on("value", gotData, errData);

   function gotData(data){
    prosegui.innerHTML = "";
    x = data.val();
    for (n in x){
      prosegui.innerHTML += n + ": " + x[n] + "<br>"
    }
  }
  function errData(err){
    console.log("Error");
    console.log(err);
  }

发布评论

评论列表(0)

  1. 暂无评论