2016-07-25 3 views
1

プッシュされたfirebaseオブジェクトは一意のキーの後ろに隠されています。childAddedを使用しない限り、プッシュされたオブジェクトを参照するのは困難です。オブジェクトにupdateを使用する場合は参照が必要です。押し込まれたFire Baseオブジェクトを更新する方法

{ 
    "ideaCount" : 0, 
    "ideas" : { 
     "-KNVuaB6ZaRCLmH0q8ic" : { 
      "idea" : { 
       "likes" : 0, 
       "name" : "test" 
      } 
     }, 
     //unique key, every idea will have a new one of these 
     "-KNVucJEgZxz_N0P8bcv" : { 
      //want to reference this 
      "idea" : { 
      "likes" : 0, 
      "name" : "jkl" 
     } 
    } 
} 

「アイデア」オブジェクトを明示的に参照に入れることなく更新することは可能ですか?

ユニークキーの後に参照を開始できますか?私の経験から、あなたはルートで参照を開始する必要があります。

具体的には、ボタンプレスで「好き」の番号を上下に変更できます。updateがこれを実行する最善の方法のようです。

答えて

1

質問に簡単にお答えください。です。 ideas/some-idea/likesへの参照を完了するには、プッシュキーが必要です。しかし、私はあなたがいつもプッシュキーを利用できるようにするために、これらの「アイデア」をリストしていると仮定しています。たとえば、次のように

はJavaScript

var theIdeas= []; 
var ref = firebase.database().ref("ideas"); 
ref.once("value").then(function(snapshot) { 
    snapshot.forEach(function(childSnapshot) { 
     // Push key 
     var key = childSnapshot.key; 
     // childData will be the actual contents of the child 
     var childData = childSnapshot.val(); 
     }); 
     theIdeas.push(childData); 
}, function(error) { 

}); 

AngularJS

var ref = firebase.database().ref("ideas"); 
var ideas = $firebaseArray(ref); 

<!-- Push key is stored inside $id --> 
<div ng-repeat"i in ideas"> {{i.$id}} </div> 

あなたがその情報を受信したときにあなたが望むものは何でも。ポイントは、あなたが "アイデア"をつかんだら、を知っているのですか?プッシュキーが何であり、それを使うことができるべきかはあなたの参照の一部です。

参考文献:

Firebase | key

関連する問題