2017-09-23 21 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

我認爲你需要在你目前的一個''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