在GeoFire Firebase中进行设置时添加其他子项?

时间:2014-10-03 18:47:45

标签: firebase geofire

我在FB中设置geoFire对象时尝试设置其他信息。

类似的东西:

geoFire.set(uniqueId, [latitude, longitude],{'message': message, 'iconUrl': iconURL, lastUpdate: Firebase.ServerValue.TIMESTAMP}).then(function () {
    //some stuff
};

我可以这样做,它主要起作用(取决于db往返时间):

geoFire.set(uniqueId, [latitude, longitude],).then(function () {

    firebaseRef.child(uniqueId).update({'message': message, 'iconUrl': iconURL, lastUpdate: Firebase.ServerValue.TIMESTAMP});

    }) 

但是我的听众触发得太快而且没有捕获所有数据,所以它在没有图标路径的情况下呈现。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,并没有想通过解决方法来解决这个问题,特别是通过引入延迟以便不断挖掘并找到它:https://github.com/firebase/geofire-js/issues/40

这基本上意味着我们需要重新构建应用程序,其中一个集合专用于GeoFire信息,另一个集合使用相同的密钥来存储附加信息。来自GitHub的例子。

{
   geofire: {
      "-J9aZZl94Sx6h": { "g": <geohash>, "l": {} }
      "-Jhacf97x4S3h": { "g": <geohash>, "l": {} },
      ...
   },
   "locations": {
      "-J9aZZl94Sx6h": { <location-data> },
      "-Jhacf97x4S3h": { <location-data> }
   }
}