Firebase Geofire JavaScript库查询未从包含Geohash的Firebase DB中检索位置详细信息

时间:2019-04-29 13:38:01

标签: javascript firebase firebase-realtime-database geofire

我在firebase中实现了UID规则,其中只有UID可以编辑其详细信息,但Read适用于所有人。 因此,Firebase数据库架构在“用户”和“用户位置”节点中都包含UID作为键。我正在使用Firebase geofire javascript库检索位置详细信息,但未识别地理位置,也未检索用户详细信息。

当我在“用户”和“用户位置”节点中都将UID用作键时,

ie key_entered不会触发。但是,当我在“用户”和“用户位置”节点中使用任何按键时,都会触发key_entered。我可以看到UID和按键之间的区别。 UID没有“-”符号。例如:UID为LX80290SLASKSAHSAN 推送ID为-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并与“ user”节点中的UID匹配,然后检索用户详细信息。

0 个答案:

没有答案