2016-07-13 2 views
1

firebaseデータベースに格納されている入れ子配列に値をプッシュしたいとします。私はfirebaseデータベースを照会し、スナップショットを受信して​​いfirebaseに入れ子配列を作成するオブジェクト

rateData is the array i want to push new data

:ターゲットは、次のようになります。このスナップショットで私は自分の変更を保存したい。私は、新しい値をプッシュする場合は、firebaseで私を作成し、この:

Firebase after push

はどのようにユニークなFB IDを避け、通常のインデックスカウンタに置き換えることができますか?

角度サービスからの私のコード:

 //Save StarBewertung on Mamis 
     this.saveStarOnMami = function (data) { 
      var ref = new Firebase("https://incandescent-heat-5149.firebaseio.com/contacts") 

      var query = ref.orderByChild("id").equalTo(data).on("child_added", function(snapshot) { 

       if(snapshot.val() === null) { 
        /* does not exist */ 
       } else { 
        //snapshot.ref().update({"phone_fixed": '123'}); 
        snapshot.ref().child('rateData').push(1); 
       } 
      }); 
     } 

は、$のfirebaseobjectとしてスナップショットを取得し、それを操作して、$セーブでFirebase DBに保存する方法はありますか?

おかげで...

+0

が働いて、あなたの現在のコードである(未テスト)? – adolfosrs

答えて

1

dbRef.push()は常にキーとして新しいUIDとデータを追加します。 dbRef.update()またはdbRef.set()を代わりに使用してください。

var rateSnapshot = snapshot.child('rateData'); 
if(rateSnapshot.val() === null) { // rateData key does not exist 
    rateSnapshot.ref().set([5]); 
} else { 
    var rates = rateSnapshot.val(); //should be an array 
    rates.push(1); //append new value to the array 
    rateSnapshot.ref().set(rates); 
} 
+0

El maestro!これは問題を解決しました!ありがとう!それがとても簡単だったことを知らなかった。 – elpeyotl

関連する問題