1

我想:输入聊天室地理位置 300m 时,从 Firebase 获取数据(=以前的聊天消息)。

我的代码:

这是我的基本 Firebase 聊天功能:

var myDataRef = new Firebase("https://digitaldatastrategi.firebaseio.com/");
  $('#messageInput').keypress(function (e) {
    if (e.keyCode == 13) {
      var name = $('#nameInput').val();
      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);

});

function displayChatMessage(name, text) {
    $('<div/>').text(text).prepend($('<em/>').text(name+': ')).appendTo($('#messagesDiv'));
    $('#messagesDiv')[0].scrollTop = $('#messagesDiv')[0].scrollHeight;
  };

这是我的“在 300m 内激活聊天室”功能:

如果(聊天室){

jQuery("#chat").slideDown("slow");
myDataRef    = new Firebase(firebaseURL + chatroom[0]);

console.log("You are in:", chatroom);

}

别的 {

jQuery("#chat").slideUp("slow");
console.log("You are not in a chatroom");

} }

我怎样才能做到这一点,不仅当我在 300m 范围内时聊天室处于活动状态,而且我还从位于该聊天室的 firebase 获取数据。我无法使功能(快照)正常工作。聊天室窗口中仅显示“未定义”。

非常感激。/一个。

4

1 回答 1

3

看看 GeoFire,这是一个构建在 Firebase 之上的库,可让您执行以下地理查询:https ://www.firebase.com/blog/2013-09-25-location-queries-geofire.html

于 2013-10-25T22:18:33.807 回答