2016-06-21 26 views
1

ためfirebaseを使用してデータを取得:私は予定またはにconsole.log appointmentsDataをCONSOLE.LOG場合は私がfirebaseデータベースからデータを取得しようとしていたWeb

firebase.database().ref("/appointments").orderByChild("doctor").equalTo(doctorId).on("value", function(snapshot) { 
    var appointmentsData = snapshot.val(); 
    for(var appointment in appointmentsData) { 
    if (!appointmentsData.hasOwnProperty(appointment)) continue; 
    var obj = appointmentsData.appointment; 
    } 
}); 

、私は正しい値を取得しますが、私はコンソールます。私は未定義です。

firebaseが返すオブジェクトからどのようにプロパティと値を取得することができますか?

+0

あなたはFirebaseデータベースに対してクエリを実行すると、潜在的に複数の結果があるだろう。したがって、スナップショットにはそれらの結果のリストが含まれています。結果が1つだけの場合でも、スナップショットには1つの結果のリストが含まれます。 @ theblindprophetの答えはリストをループする方法を示しています。 –

答えて

3

FirebaseforEachの機能を使用します。スナップショットを反復処理し、そのオブジェクト内の各プロパティのキーと値を簡単に取得できます。別のオブジェクトまたはフラットな値になる可能性があります。

firebase.database().ref("/appointments").orderByChild("doctor").equalTo(doctorId).on("value", function(snapshot) { 
    snapshot.forEach(function(childSnapshot) { 
     // key 
     var key = childSnapshot.key; 
     // value, could be object 
     var childData = childSnapshot.val(); 
     // Do what you want with these key/values here 
     ... 
    }); 
}); 

参考:

forEach, Firebase 3.0

+0

ありがとう!これは、ガード開始ガイドに存在していたはずです – rhari

関連する問題