2014-10-03 31 views
1

我想在FB中设置geoFire对象时设置其他信息。在GeoFire Firebase中设置时添加额外的孩子吗?

喜欢的东西:

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

    }) 

,但我的听众触发太快,不捕捉所有的数据,所以它没有图标路径呈现。

+0

我用黑客修复了它。它只是延迟触发器,以便在检索前首先设置所有数据。我宁愿只是一次设置所有的数据。 – BanditX 2014-10-04 11:30:13

回答

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> } 
    } 
} 
+2

这是同性恋,所以任何位置更新必须是自己的设置,你不能直接使它成为一个预先存在的集合的孩子? – KellysOnTop23 2016-08-06 01:02:35

相关问题