2

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

    }) 

しかし、リスナーのトリガーが速すぎて、すべてのデータをキャプチャしないため、アイコン パスなしでレンダリングされます。

4

1 に答える 1

1

私は同じ問題を抱えていました。特に遅延を導入することで、これを回避策で解決したくありませんでした

これは基本的に、アプリケーションを再構築する必要があることを意味します。1 つのコレクションは GeoFire 情報専用であり、別のコレクションは同じキーを使用して添付情報を保存します。GitHub の例。

{
   geofire: {
      "-J9aZZl94Sx6h": { "g": <geohash>, "l": {} }
      "-Jhacf97x4S3h": { "g": <geohash>, "l": {} },
      ...
   },
   "locations": {
      "-J9aZZl94Sx6h": { <location-data> },
      "-Jhacf97x4S3h": { <location-data> }
   }
}
于 2015-01-09T14:23:00.527 に答える