2017-08-05 9 views
2

私はこのような私のfirebaseデータベース構造にしている:firebaseデータベース配列の項目をスプライスすることはできますか?

enter image description here

私はカテゴリ1を削除したいが、私は*.firebaseio.com/categories/1.jsonにDELETEリクエストを送信していたときに私が取得:

enter image description here

を私は私の配列内の残りのインデックスを変更してnullの項目を持たない配列を取得したい は、削除categories[1]は、このような新しい配列が、その場合には

enter image description here

答えて

1

を?:取得する後、あなたがfirebaseするとfirebaseがガイドからタイムスタンプ

次固有のIDを割り当てます、あなたのアイテムをプッシュしなければならないことは可能です:

プッシュ()ワットを呼び出すプッシュ(によって生成される一意のIDに)

を取得新しいデータパスへの参照を返します。これを使用してIDの値を取得したり、データを設定したりできます。次のコードは、上記の例と同じデータになりますが、今、私たちは

// Generate a reference to a new location and add some  data using push() 
var newPostRef = postsRef.push({ 
    author: "gracehop", 
    title: "Announcing COBOL, a New Programming Language" 
}); 
    // Get the unique ID generated by push() by accessing its key 
var postID = newPostRef.key; 

ソースに生成されたユニークなプッシュIDへのアクセスがあります:https://www.firebase.com/docs/web/guide/saving-data.html

1

Firebaseがネイティブに保存されていない配列を。表示されているように、代わりにデータを「シーケンシャル数値」インデックスを持つ通常のJSONオブジェクトに格納します。そのJSONオブジェクトから項目を削除すると、他のインデックスは自動的に更新されません。

あなたはここで2つのオプションがあります。

  1. は常に全体の配列を更新。
  2. コレクションのFirebaseプッシュIDを使用します。

FirebaseのプッシュIDは、Firebaseの注文コレクションと同等です。シーケンシャルな数値索引ほど読みやすいものではありませんが、いくつかの重要な利点があります。詳しくは、this blog post about arraysとプッシュIDについてのこのブログ記事をご覧ください。

REST APIを使用してプッシュIDを生成するには、個々のアイテムをPOSTリクエストで追加します。

関連する問題