2016-07-29 44 views
0

以下代码按预期工作。但是,我有2个问题:在Firebase中添加数据列表

// Save default Account Types 
var refTypes = this.housesRef.child(key + "/memberaccounttypes/"); 
refTypes.push({ name: 'Checking', icon: '0' }); 
refTypes.push({ name: 'Savings', icon: '0' }); 
refTypes.push({ name: 'Credit Card', icon: '0' }); 
refTypes.push({ name: 'Debit Card', icon: '0' }); 
refTypes.push({ name: 'Investment', icon: '0' }); 
refTypes.push({ name: 'Brokerage', icon: '0' }); 
  1. 通过这种方法,我在做好几趟火力地堡,每一个推?
  2. 是否有一种更高效,最佳实践的方式一次保存下列数据?

我使用火力地堡SDK 3

回答

0

每次调用以这种方式来推动确实会导致往返于火力地堡。您可以通过检查浏览器调试工具的网络选项卡上的“Web套接字”窗格轻松验证此情况。

如果你想运行这个作为一个单一的更新,你可以将它们组合成一个多位置的更新:

var refTypes = this.housesRef.child(key + "/memberaccounttypes/"); 
var updates = {}; 
updates[refTypes.push().key] = { name: 'Checking', icon: '0' }; 
updates[refTypes.push().key] = { name: 'Savings', icon: '0' }; 
updates[refTypes.push().key] = { name: 'Credit Card', icon: '0' }; 
updates[refTypes.push().key] = { name: 'Debit Card', icon: '0' }; 
updates[refTypes.push().key] = { name: 'Investment', icon: '0' }; 
updates[refTypes.push().key] = { name: 'Brokerage', icon: '0' }; 
refTypes.update(updates); 

注意,这将很难保存任何时间/带宽,因为the Firebase client pipelines requests

+0

一如既往,你是最棒的。谢谢弗兰克! –

相关问题