2

Firebaseデータベースとは別のノードを作成して表示するのが少し難しかったです。Firebaseデータベースは、新しいノードの初めにヌルを返します。

"Units"という名前の子ノードのショットです。Firebaseコンソールでは、それぞれ独自のプロパティを持つ別々の"Unit"ノード(1,2,3 ...)が1つずつ必要です。

enter image description here

私は私が間違っているのか知っているが、データが返されたときにビューの反復処理時にデータが誤って表示させる各新しい子ノードの先頭にnullありません。データが戻ってくるとここ

は、ブラウザでconsole.logのスナップショットです:

enter image description here

あなたが実際のデータの前に、それぞれの新しいネストされたノードの上部にnullがある見ることができるように。私は多分それが何らかの値を持たない(1,2,3)ノードと関係があると思っていますが、私がそれらの値を与えると、もはや各ユニットの中にデータを入れ子にすることはできません。

私はFirebaseには比較的新しいので、基本的なエラーが出たら私を許してください。前もって感謝します!

答えて

3

数字のプロパティ名を使用すると、Firebaseは配列を保存しようとしているかどうかを確認します。データは配列のように見える場合

データがval()またはREST APIを介してを使用して読み込まれ、サーバは配列としてそれをレンダリングします:legacy documentation on firebase.comが、これはそれについて言っていました。特に、すべてのキーが整数で、オブジェクトとキーの間のキーの半分以上が空でない値を持つ場合、それは配列として扱われます。

データがこれらの基準を満たすため、Firebaseはそれを配列として返します。配列は0から始まるため、欠落している0番目の要素が追加されます。

これを防ぐために、あなたは、いくつかのオプションがあります。

  • あなたの鍵を生成するために、数字キーを使用しますが、Firebase push()を使用しないでください

  • 付けることによって、数字キーを使用しないでください。文字列定数を使用して番号:Unit1Unit2、(アンドレ・クールから良い提案)0から数えなど

  • スタート

これは実際に私が考えることができる唯一のオプションです。

+1

迅速な対応に感謝します。私は個々の 'unit'ノードをunit1、unit2などに変更しました。しかし、Firebaseがなぜ数値のないノードの上に「ヌル」を追加したのか、私は不思議に思っていました。 'occupants'と' ownerNames'です。 – mikeym

+2

@Frankまたは1の代わりに0から開始してください。 –

+0

@mikeym動作はすべてのレベルで同じです。配列のように見える場合、Firebaseクライアントはそれを配列にします(したがって、あなたのケースでは '0'で埋められます)。 –

関連する問題