8

私はfirebaseをいじっていて、データ構造に興味があります。データベースを参照すると、firebase を使用して、データベース内の構造とデータを変更できます。しかし、firebase はオブジェクト (およびリストの辞書) のみをサポートしているようです。

配列がサポートされているかどうかを知りたいです。また、辞書項目に整数で名前を付けることができるかどうかも知りたいです.firebaseインターフェースは文字列を名前として挿入するだけなので、レコードの順序付けが心配です.

これは、firebase インターフェイスを介して作成された json のサンプルです。

{
 "dg":{
  "users":{
   "rein":{
    "searches":{
     "0":{
      "urls":"http://reinpetersen.com,http://www.reinpetersen.com",
      "keyphrases":"rein  petersen,reinsbrain,programmer turned kitesurfer"
     }
    }
   },
   "jacqui":{
    "searches":{
     "0":{
      "urls":"http://www.diving-fiji.com,http://diving-fiji.com",
      "keyphrases":"diving marine conservation, diving fiji"
     }
    }
   }
  },
  "crawl_list":{
   "1":{
    "urls":"http://www.diving-fiji.com,http://diving-fiji.com",
    "keyphrases":"diving marine conservation, diving fiji"
   },
   "0":{
    "urls":"http://reinpetersen.com,http://www.reinpetersen.com",
    "keyphrases":"rein  petersen,reinsbrain,programmer turned kitesurfer"
   }
  }
 }
}

明らかに、私のリストでは、並べ替えが正しいことを確認できるように、辞書項目名を整数にする必要があります。

4

2 に答える 2

12

配列を Firebase に保存できます。例えば:

var data = new Firebase(...);
data.set(['x', 'y', 'z']);

Javascript 配列は、基本的に数字キーを持つ単なるオブジェクトです。データを取得するとき、Firebase オブジェクトに数値キーしかない場合は自動的に検出し、その場合は配列を返します。

複数の人が配列内の同じインデックスに書き込むと競合が発生する可能性があるため、多くの人が追加できるデータのリストを保存する場合、配列は適切な選択ではないことに注意してください。代わりに、データの時系列順に並べられた一意の ID を作成する「プッシュ」機能があります。

また、データを順序付けする方法として配列を使用する場合は、優先順位を使用してそれを行うためのより良い方法があります。ドキュメントを参照してください。

于 2012-07-08T19:43:37.377 に答える
3

Firebase のドキュメントには、データの順序付け方法に関する非常に優れたセクションがあります: Ordered Data

JSON フィールドと同様に、Firebase フィールドには文字列のみで名前を付けることができます。あなたが探しているのはsetWithPriority()、並べ替え可能な優先度データをフィールドに添付する 、またはpush()フィールドに一意の名前を付けることが保証されている のように聞こえます。(リストの詳細とpush() こちら.)

push()またはset()配列にすることもできます。例えば、

new Firebase("http://gamma.firebase.com/MyUser").push(["cakes","bulldozers"]);

期待どおりのツリーになり、 MyUser は、子を持つ一意の名前の子を受け取り、"0":"cakes""1":"bulldozers".

于 2012-07-07T18:44:50.440 に答える