2016-03-21 11 views
1

Так что я работаю над небольшим веб-приложением, и я использую Firebase для внешнего сервера. Это небольшое приложение чата, и я пытаюсь для хранения сообщений о человеке в следующем виде:Хранить данные в Firebase как объект JSON

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

Я храню имя человека в переменной с именем my_name. Ссылка на мою Firebase называется ref. Скажем, я поставил my_name, как,

var my_name = "John"; 

, а затем сделать

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

Он хранит данные как

{my_name : {0:"Hello"}} 

вместо

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

Как я могу хранить это так что он использует назначенное значение my_var?

+0

Почему данные чата сохраняются как массив? Вероятно, это вызовет проблемы позже. При хранении данных чата, подобных этому, лучшим вариантом может быть push() для создания имен узлов и хранения сообщений в виде пары ключ: значение в каждом узле. Таким образом вы сможете сохранить, от кого сообщение и от него, а также от метки времени, выполнить запросы и другие данные. Кроме того, у вас есть период в вашем примере (.2) вместо запятой. – Jay

ответ

3

Попробуйте поставить скобки вокруг имени свойства следующим образом:

var my_name = 'John'; 

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

узнать что-то новое каждый день :) –

2

Создать объект JS, как этот

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

затем сохранить это Firebase

ref.set(obj); 
0

Проверьте ваш {} в комплекте.

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

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

Это сэкономить:
типа: "Fiat"
модель: "500"
цвет: "белый"

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

Это сэкономить:

автомобиля:
- тип: "Fiat"
- модель: "500"
- цвет: "белый"

Смежные вопросы