Добавление дополнительных детей при настройке в GeoFire Firebase?

Я пытаюсь установить дополнительную информацию при установке объекта geoFire в FB.

Что-то вроде:

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});

    }) 

но мой слушатель срабатывает слишком быстро и не захватывает все данные, поэтому он отображается без пути к значку.

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> }
   }
}
Другие вопросы по тегам