2

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

就像是:

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

我可以这样做,它主要工作(取决于数据库往返时间):

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

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

    }) 

但是我的侦听器触发太快并且没有捕获所有数据,因此它在没有图标路径的情况下呈现。

4

1 回答 1

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> }
   }
}
于 2015-01-09T14:23:00.527 回答