Запрос библиотеки Firefox Geofire Javascript не извлекает информацию о местоположении из базы данных Firebase, в которую включен геохэш - PullRequest
0 голосов
/ 29 апреля 2019

Я внедрил правило UID в firebase, где только UID может редактировать свои данные, но Read - для всех. Итак, схема БД Firebase содержит UID в качестве ключа в узле «users» и «user_location». Я получаю информацию о местоположении, используя библиотеку javascript firebase geofire, и она не идентифицирует геолокацию и не возвращает информацию о пользователе.

т.е. key_entered не запускается, когда я использую UID в качестве ключа как в узле user, так и в user_location. однако key_entered запускается, когда я использую любую нажимную клавишу в узле «user» и «user_location». Я вижу разницу между UID и нажимной кнопкой. UID не имеет символа «-». Например: UID LX80290SLASKSAHSAN push-идентификатор - -KSSD1212JSAD

Я изменил UID как ключ на любой ключ PUSH, и он работает.

var ref = firebase.database().ref().child("user_Location");
alert("ref"+ref);
ref.on("value", function(snapshot) {

 snapshot.forEach(function(child) {
    var childData = child.val();
    alert(childData);
});

 }, function (error) {
 console.log("Error: " + error.code);

});

var geoFire = new GeoFire(ref);
alert("geofire"+geoFire);
var geoQuery = geoFire.query({

  center: [51.425387, -0.92673],
  radius: 1.80 });



alert("after geofire");

 geoQuery.on("key_entered", function(key, location, distance) {
       ref = firebase.database().ref().child("user").child(key);

 ref.on("value", function(snapshot) {

  snapshot.forEach(function(child) {
    var childData = child.val();
    alert(childData);
  });

моя структура логической схемы выглядит следующим образом

   user
        UID 
            firstname
            last name
   user_location
         UID
             g : "990",
             1 :52.11212
             0 : -0.9898

Я хочу, чтобы firebase geofire идентифицировал узел «user_location» для соответствующей геолокации, которую я передаю, а затем получил UID и совпадает с UID в узле «user», а затем получил сведения о пользователе.

...