2017-09-30 9 views
1

firebaseオブジェクトの最初の子を取得しようとしています。私の参照は次のようになります:キーのない最初のfirebase子を取得

var sitesToVisitRef = firebase.database().ref('sitesToVisit') 

私はそれに書き込むことができるので、私はrefが動作することを知っています。私のデータ構造は次のようになります。

sitesToVisit: 
    arstechnica-com: 
    url: "https://arstechnica.com" 

しかし、私は、キー(arstechnica-COM)を知らないが、私は、URLを取得する必要があります。

私はこのコードをしようとしています: "sitesToVisit" ではなく、 "arstechnica-COM" として

var nextUrl; 
sitesToVisitRef.limitToFirst(1).once('value', function(snapshot) { 
    console.log("snapshot key" + snapshot.key); 
    console.log("snapshot.val.url = " + snapshot.val().url); 
    console.log("snapshot.val" + snapshot.val()); 
     nextUrl = snapshot.val().url; 
    } 
    }); 

しかしsnapshot.keyログ。

ご協力いただければ幸いです。どうもありがとうございます!

+0

um ...あなたがサイトを取得している場合は、それを参照して、arstechnica-comを入手するために '.child()'を追加しないでください。 – btrballin

答えて

3

これを試してください:あなたはsnapshotで持っていることはsitesToVisit内のすべてのチャイルズを持つ配列である

var nextUrl; 
sitesToVisitRef.limitToFirst(1).once('value', function(snapshot) { 
    for(var key in snapshot.val()){ 
     console.log("snapshot key" + key); 
     console.log("snapshot.val.url = " + snapshot.val()[key].url); 
     console.log("snapshot.val" + snapshot.val()[key]); 
     nextUrl = snapshot.val()[key].url; 
    } 
    }); 

、あなたはそれが唯一のフォースト一つだが、あなたが反復する必要があるので、それはまだ配列であるlimitToFirst(1)を使用するのでその配列を使って各子供の鍵を得る。

+0

ありがとうございます!できます! –

関連する問題