Добавление дополнительных детей при настройке в 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> }
}
}