2017-09-23 5 views
0

firebaseから引き出す際にこの問題が発生していました。以下のような私のデータベース構造:firebaseからデータを取得して定義されていない

私はMERCHANTNAMEとその関連枝詳細を引くしようとしています:

function getAllMerchant(){ 
    var query = firebase.database().ref('merchants'); 
    return query.once('value').then(data => { 
     var result = []; 
     data.forEach(snapshot => { 
      var merchantData = snapshot.val(); 
      var merchantName = merchantData.merchantName; 
      var branchName = merchantData.branches.branchName; 
      var branchAddress = merchantData.branches.branchAddress; 
      console.log('check ' + merchantName + ' ' + branchName + ' ' + branchAddress); 
      result.push({merchantName: merchantName, branchName: branchName, branchAddress: branchAddress}); 
     }); 
     return result; 
    }); 
    resolve(result); 
} 

私はbranchNameとbranchAddressをプリントアウトする場合しかし、私は未定義取得しています。私はmerchantNameを印刷しました。何か案は?

ありがとうございます!

+0

私はあなたの現在のものの中にもう1つの 'forEach'が必要だと思います。 'merchantData.branches.forEach()'のように – Hareesh

+0

@Hareeshいいえ、merchantData.branches.forEach()は関数ではありません。 – guest176969

答えて

3

マーチャントのbranchesを反復しているわけではありません。

data.forEach(merchantSnapshot => { 
    var merchantData = snapshot.val(); 
    var merchantName = merchantData.merchantName; 
    console.log('check ' + merchantName); 
    merchantSnapshot.child("branches").forEach(brancheSnapshot => { 
     var branchName = brancheSnapshot.val().branchName; 
     var branchAddress = brancheSnapshot.val.branchAddress; 
     console.log(' ' + branchName + ' ' + branchAddress); 
    }); 
}); 
+0

これは問題ではありません。私はmerchantNameを印刷しましたが、branchNameとアドレスは印刷しませんでした。 – guest176969

+1

ああ、確かに。あなたは枝の上にループがありません。 'merchantData.branches'はすべてのブランチのコレクションです。 –

+0

ああ、私は見る!本当にありがとう!!! – guest176969

関連する問題