2016-09-29 6 views
3

У меня есть следующий объект:Как получить идентификатор объекта, сгенерированный Firebase?

root: { 
    id1: { /* this is an autogenerated id by Firebase */ 
    name1: "abc", 
    name2: "xyz" 
    }, 
    id2: { 
    name1: "abc", 
    name2: "xyz" 
    }, 
    id3: { 
    name1: "abc", 
    name2: "xyz" 
    }, 
} 

Моего код для извлечения всего снимка является:

getRoot() { 
    firebase.database().ref ('roots/') 
     .on('value', function (snapshot) { 
     console.log (snapshot.val()); 
     }) 
    } 

Все отлично. Я получил каждый объект из корневого компонента, но я не могу понять, как получить доступ к идентификаторам и их детям? Благодаря!

ответ

5

Я не помнил, что я разместил этот вопрос. Я узнал, как это сделать давно.

Вот код, который будет выполнять работу:

Услуги:

myFunction() { 
    var ref = firebase.database().ref ('roots') 
    return new Promise ((resolve, reject) => { 
    ref.on ('value', function (snapshot) { 
     if (snapshot.val() == null) { 
     reject (null); 
     } else { 
     var list = new Array(); 
     snapshot.forEach (function (data) { 
      var item = { 
      key: data.key, //this is to get the ID, if needed 
      name1: data.val().name1, 
      name2: data.val().name2, 
      } 
      list.push (item); 
     }); 
     resolve (list); 
     } 
    }); 
    }); 
} 

Компонент:

this.myService.myFunction().then (objects => { 
    this.objects = objects; 
    for (let obj of this.objects) { 
    console.log (obj.key); 
    } 
}).catch (error => { 
    alert ('Nothing found'); 
}) 

Желаю вам счастливого кодирования!

0

Изменить эту строку кода:

firebase.database().ref ('roots/') 

к этому:

firebase.database().ref ('roots/id1/name1') 

Это позволит получить значение 'имя1'.

+1

Это должно возвращать параметры от каждого объекта. Но мне нужно получить весь список объектов. – RaulGM

Смежные вопросы