私は、そのマーケットプレイスで販売されている各アイテムの変更をリッスンしているiOSマーケットプレースアプリを持っています。もっと正確に言えば、私はそのアイテムの子供が変わっても、取り除かれるのか聞いています。Firebaseの100人の子供に追加されたアイテムを聴く
問題は、子供が追加されたときに聞きたいことです。 Firebaseに子が追加されたときにリッスンするのは、最初にリスナを設定したときに、そのノード上のすべての兄弟を取得することです。
アイテムの子が同じアイテムのリストではないため、特定のタイムスタンプの後に追加された子を聞くことができません。私はsomething like thisをやろうと考えていて、最初の子を無視していました。私は本質的にFirebaseから物事を2回引っ張っているので、このような大きな浪費のように思えます。 1回はFEventTypeValue
で、1回はFEventTypeChildAdded
とします。
私が聴きたいアイテムは、フィードに読み込まれているアイテムです。おそらく数百のアイテムになるでしょうが、潜在的に何千ものアイテムになる可能性があります。
どうやってこれをやりますか?私は追加された子どもの話を聞くことについてすべてを忘れるべきでしょうか、それともまともな解決策がありますか?
編集(追加サンプルコード):
だから、これは私がFirebase上の特定の項目のデータをフェッチする方法です。
var ref = new Firebase('https://<your-Firebase>.firebaseio.com');
ref.child('listings/-KB9ZqLZBEskoUihb-yR').once('value', function(snapshot) {
listing = snapshot.val();
});
そして、ここで私は新しい子がその項目に追加されたときのために聞きたい:
ref.child('listings/-KB9ZqLZBEskoUihb-yR').on('child_added', function(snapshot) {
listing[snapshot.key()] = snapshot.val()
});
問題は、そのノードに追加された項目を聴くことは、再びすべての子ノードを取得し、それが思われることです大きな浪費のように。このような状況にどう対処しますか?
コードとデータを説明するテキストが多すぎます。あなたが求めている状況を再現する実際のコードとJSON(テキストとして、スクリーンショットなし)を提供してください。 [MCVE](http://stackoverflow.com/help/mcve)を参照してください。 –
'listings/-KB9ZqLZBEskoUihb-yR'は特定の商品ですか?そのノード内に*子が追加されているか、または* listing *ノードで追加される他のアイテムを探していますか?いくつかのFirebase構造が本当に私たちを助け、多分質問の明確化を助けるでしょう。 – Jay
'listing/-KB9ZqLZBEskoUihb-yR'は特定のアイテムで、子供がその特定のアイテムに追加されたときに聴きたい。 –