2016-09-29 19 views
3

私は、次のオブジェクトがあります全体のスナップショットを取得するためのFirebaseによって生成されたオブジェクトIDを取得するには?

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()); 
     }) 
    } 

すべてが完璧です。ルートコンポーネントからすべてのオブジェクトを取得しましたが、IDとその子にアクセスする方法を理解できません。ありがとう!

答えて

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') 

これは 'NAME1' の値を取得します。

+1

これは、すべてのオブジェクトからパラメータを返す必要があります。しかし、私はオブジェクトのすべてのリストを取得する必要があります。 – RaulGM

関連する問題