2016-07-08 47 views
1

我的Firebase数据。Firebase如何向所有子女添加新数据

User : { 
    user1 : { 
     name : 1, 
     age : 2 
    }, 
    user2 : { 
     name : 1, 
     age : 2 
    }, 
     .... 
     .... 
     .... 
    user10 : { 
     name : 1, 
     age : 2 
    } 
} 

我需要添加somekey到所有用户。每个不使用循环。

userxx : { 
     name : 1, 
     age : 2, 
     somekey : 1 
} 

当前代码:

fb.ref("Users").once('value',function(s){ 
    s.forEach(function(snap){ 
     fb.ref("Users/"+snap.key+"/somekey").set(2); 
    }); 
}); 

如果数据量不大此代码的工作,如果大量的数据具有用户100+有可能是一个问题。

感谢和抱歉的语法。

+0

'不使用循环each.'为什么不呢?这几乎是你唯一的选择,无论你是明确写入还是使用内部循环的方法。 –

回答

2

监听器价格便宜:看this

反正在这种情况下,你可以使用多路径update。这里有一个例子:

fb.ref("Users").update({ 
    'user1/somekey': 2, 
    'user2/somekey': 2 
}) 

你也许可以改变你的代码,这样

fb.ref("Users").once('value',function(s){ 
    var users = s.val() 
    var newUsers = {} 
    for(var key in users) { 
     newUsers[key+'somekey'] = 2 
    } 
    fb.ref("Users").update(newUsers) 
}); 

希望它帮助;)

+1

谢谢。它有助于 :) – Empty

相关问题