2017-02-11 3 views
0

私はAngular2パッケージAngularFire2でFirebaseを使用しており、新しいアイテムを作成する方法を習得しようとしています。ドキュメントによるとFirebaseでは、何かを保存するためにノード全体をダウンロードする必要がありますか?

リストに新しい項目を追加するためのプッシュ()メソッドを使用します。私の場合は

const items = af.database.list('/items'); 
items.push({ name: newName }); 

、 "アイテム" は巨大な配列になります。私は本当にそれを最初に取得し、その後プッシュを行う必要がありますか?最初にダウンロードする必要はありません。

答えて

3

新しい子を場所に追加するには、その場所への参照を作成する必要があります。場所への参照を作成するとでなく、その場所のすべてのアイテムをダウンロードします。 Firebaseデータベース用のJavaScript SDKを使用して

、これはとります。一方

const items = firebase.database().ref('/items'); 
items.push({ name: newName }); 

:AngularFire2観測可能その場所でアイテムをダウンロードします作成します。したがって、既存のデータをダウンロードせずにアイテムを追加する場合は、FirebaseデータベースにJavaScript SDKを使用してください。

+0

Hmm。実際にアイテムをダウンロードする前に、オブザーバブルを購読する必要はありませんか? – Weblurk

+0

そうかもしれません。私はAngular2/AngularFire2エキスパートではありません。ただし、ブラウザの[ネットワーク]タブで、データがダウンロードされたかどうかを確認できます。しかし、確かに:私が共有する通常のJavaScript SDKスニペットは、アイテムをダウンロードせずに子を追加します。 AngularFireは同じSDKの上に構築されているので、完全に相互運用できます。新しい子は、同じページ/アプリ内の他の場所にある観察可能なものに表示されます。 –

+1

AngularFire2リストとオブジェクトオブザーバブルは 'subscribe'が呼び出されるまで何もダウンロードしません。したがって、2つのスニペットには基本的に違いはありません。 – cartant

関連する問題