2016-07-30 3 views
0

Я пытаюсь изучить новую firebase и следовать вместе с руководствами на их сайте, но я просто не получаю эту часть права. Как сохранить данные в базе данных? В настоящее время моя база данных пуста, и я хочу, чтобы это произошло, - пользователь вводит материал в текстовый ввод, а затем удаляет сохранение, и это должно сохранять все, что пользователь вводил в db вместе со своим UId и dateCreated данных. Вот что я получил:Firebase - сохранение данных в базе данных

<script src="https://www.gstatic.com/firebasejs/3.2.0/firebase.js"></script> 
<script> 
    // Initialize Firebase. Note that I'm not using the real init details in this post but I assure you they are present in my app 
    var config = { 
     apiKey: "myApiKey", 
     authDomain: "myProject.firebaseapp.com", 
     databaseURL: "https://myProject.firebaseio.com", 
     storageBucket: "myProject.appspot.com", 
    }; 
    firebase.initializeApp(config); 
    var database = firebase.database() 

    // A whole bunch of other unrelated functions and stuff here 

    $('#addMeal').click(function() { 
     $('#addBox').slideUp(); 
     var meal = $('#txtAdd'); var uid = $('#uid').val(); 
     // If I try to console.log these two vars up here it does actually fire so I don't think there's something wrong with the jquery. 

     if(meal.val()) { 

     function createMeal(uid, email) { 
      firebase.database().ref('meals/').set({ 
      title: name, 
      user: uid, 
      dateCreated: new Date() 
      }); 
     } 

     } else { 
     $('#addBox').addClass('margin_top_xs alert alert-danger').slideDown(); 
     $('#addMsg').html('<h5 class="centered bold margin_bot_no"> You can\'t enter a blank meal!</h5>'); 
     } 
    }); 

</script> 

Также имейте в виду, что я не знаю, какой написать метод, который я должен использовать, что я хочу сделать, это сохранить каждую еду в БД без сохранения по сравнению с любыми другими данными, так Я не против, если вы ответите другим способом сохранения данных.

Любая помощь будет оценена по достоинству. Благодаря!

ответ

1

Похоже, вы пытаетесь сохранить список блюд. Таким образом, вместо вызова set, что (как это следует из названия) устанавливает данные по месту нахождения в базе данных, вы должны вызвать push() какой appends the data to a list of data:

function createMeal(uid, email) { 
     firebase.database().ref('meals/').push({ 
     title: name, 
     user: uid, 
     dateCreated: new Date() 
     }); 
    } 

Документация Я связала объясняет это более подробно, поэтому я рекомендую (повторного) чтения.

+0

Спасибо, но это не сработало. Мой db по-прежнему пуст :( – PrintlnParams

+0

Сохранение дополнительных данных в список-подобном местоположении требует использования 'push()'. Это может быть вызвано многими проблемами, ни одна из которых я не могу легко увидеть из кода, который вы опубликовали. отправьте ** минимальный ** jsfiddle/jsbin, который воспроизводит проблему, я посмотрю. –

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