Firebase - 将数据保存到数据库

时间:2016-07-30 07:07:12

标签: jquery firebase firebase-realtime-database

我正在尝试学习新的火力基地,并且正在跟随他们网站上的指南,但我只是没有让这部分正确。如何将数据保存到数据库?目前我的数据库是空的,我想要发生的是用户在文本输入中键入内容然后点击保存,这应该保存用户键入的任何内容以及他的UId和数据的dateCreated。这就是我得到的:

<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 个答案:

答案 0 :(得分: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()
      });
    }

我链接的文档更详细地解释了这一点,因此我建议(重新)阅读它。