2016-07-08 8 views
1

My Firebase Data。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

リスナーが安価である:あなたは、マルチパスupdateを使用することができ、この場合にはとにかくthis

を参照してください。ここでは例です:

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

関連する問題