我正在制作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,但它是波兰语。
答案 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});