Firebase" Uncaught TypeError:myDataRef.push不是函数"

时间:2016-05-08 13:03:03

标签: javascript php firebase

我正在制作PHP游戏,它使用基于Firebase的聊天功能。 我在下面提供了代码。它的元素

$text = "(...)";

(其中(...)表示代码)

我有一个问题,当我在输入上单击Enter发送消息时没有任何反应。 Chrome显示

  

未捕获的TypeError:myDataRef.push不是函数

但这没有任何意义。我的代码是Firebase Tutorial的大多数副本,但已修改,该输入位于消息之前,当新消息出现时,它会向上,而不是向下。

<input type='text' id='messageInput' placeholder='Wiadomość'>
<div id='messagesDiv'></div><br>
<script>
  var myDataRef = new Firebase('https://********.firebaseio.com/').limit(15);
    $('#messageInput').keypress(function (e) {
    if (e.keyCode == 13) {
      var name = '".$user->username."';
      var text = $('#messageInput').val();
      myDataRef.".'push'."({name: name, text: text});
      $('#messageInput').val('');
    }
  });
  myDataRef.on('child_added', function(snapshot) {
    var message = snapshot.val();
    displayChatMessage(message.name, message.text);
  });
  myDataRef.on('child_removed', function(snapshot) {
    //do nothing
  });
  function displayChatMessage(name, text) {
    $('<div/>').text(text).prepend($('<em/>').text(name+': ')).prependTo($('#messagesDiv'));
    $('#messagesDiv')[0].scrollTop = $('#messagesDiv')[0].scrollHeight;
  };
</script>

我搜索过任何答案,但我找不到任何答案。

由于

注意:游戏可以在这里找到:Automaty,但它是波兰语。

1 个答案:

答案 0 :(得分:1)

您正在尝试在Query对象上编写事务。

var myDataRef = new Firebase('https://********.firebaseio.com/').limit(15);

limit()返回Query个对象,而不是DatabaseReference。

  

通过在DatabaseReference上调用startAt(),endAt()或limit()来获取查询实例。

尝试:

var myDataRef = new Firebase('https://********.firebaseio.com/');
myQuery = myDataRef.limit(15);
// ...
myDataRef.push({name: name, text: text});