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