2016-03-21 24 views
1

私は小さなWebアプリケーションを作成していますので、Firebaseをバックエンドに使用しています。これは、小規模なチャットアプリケーションだと私は次の形式で、人のメッセージを保存しようとしています:FirebaseのデータをJSONオブジェクトとして保存します

{ "John" : {0: "hello",1:"how are you?".2:"what are you doing?" }} 

私はMY_NAMEという変数に人の名前を格納しています。私のFirebaseリファレンスはrefと呼ばれています。私は

var my_name = "John"; 

、としてMY_NAMEを設定し、どのように私はそれを保存することができますそれは

{my_name : {0:"Hello"}} 

代わりの

{"John" : {0:"Hello"}} 

としてデータを格納する

ref.set({my_name : {0:"Hello"}}); 

ないと言いますmy_varの割り当てられた値を使用していることを確認しますか?

+0

なぜチャットデータが配列として保存されていますか?それはおそらく後で問題を引き起こすでしょう。このようにチャット・データを格納するときは、ノード名を生成するためにpush()を実行し、各ノード内のkey:valueのペアとしてメッセージを格納することをお勧めします。このようにすることで、メッセージの出入り先とタイムスタンプの保存、クエリの実行などを行うことができます。また、コンマの代わりにあなたの例(.2)にピリオドがあります。 – Jay

答えて

3

そうのようなあなたのプロパティ名の前後にブラケットを入れてみてください:

var my_name = 'John'; 

ref.set({ 
    [my_name]: { 0: "Hello" } 
}); 
+0

新しいことを学ぶevery day :) –

2

ref.set(obj); 
0

があなたの{}をチェックFirebaseし、これを保存し、この

var obj = {}; 
obj[my_name] = "{ 0: "Hello" }"; 

などのJSオブジェクトを作成します。セットで。保存

var car = {type:"Fiat", model:"500", color:"white"}; 

     function writeData() { 
      firebase.database().ref('cars/'+ dateToInsert).set(
       car 
      ); 


タイプ: "フィアット"
モデル: "500"
色: "白" 保存

 function writeData() { 
      firebase.database().ref('cars/'+ dateToInsert).set({ 
       car 
      }); 

車:
- タイプ: "Fiat"
- モデル: "500"
- 色: "白"

関連する問題