【问题标题】:Integrating Geofire with Firebase Data将 Geofire 与 Firebase 数据集成
【发布时间】:2016-01-25 16:51:57
【问题描述】:

我正在尝试将 Geofire 集成到 Firebase Objective-C 应用程序中,但我不确定如何设置 Geofire 节点来观察我的 Firebase 存储库。以下是 Geofire 启动指南的建议:

“要创建新的 GeoFire 实例,您需要将其附加到 Firebase 数据库引用”

我的问题是:“将其附加到 Firebase 数据库引用”是什么意思?

在我的代码中,我希望 Geofire 观察这个 Firebase 位置:

@"https://myApp.firebaseio.com/ios/languages"

这是 Firebase 中“语言”节点的样子:

languages
--Arabic
----FakeUser1
------latitude: "38.8438"
------longitude: "-77.62432"
----FakeUser2
------latitude: "38.6438"
------longitude: "-77.32432"
--English
----FakeUser1
------latitude: "38.3438"
------longitude: "-77.92432"
----FakeUser2
------latitude: "38.2438"
------longitude: "-77.02432"

我想知道的是如何让 Geofire 观察和存储每个假用户的位置。每当我将用户读入 /languages/arabic 或 /languages/english 参考资料时,我是否会创建一个唯一的 Geofire 节点并将用户读入其中?或者Geofire 会观察预先存在的节点——即。像这样的东西可以解决问题吗:

Firebase *geofireRef = [[Firebase alloc] initWithUrl:@"https://myApp.firebaseio.com/ios/languages"];
GeoFire *geoFire = [[GeoFire alloc] initWithFirebaseRef:geofireRef];

【问题讨论】:

    标签: objective-c geolocation firebase geofire


    【解决方案1】:

    我想通了。您创建了一个独特的 Geofire 节点,该节点反映了您尝试监控的节点。

    【讨论】:

    • 是的。通常每个“移动项目”都有两个节点。一个带有地理数据,另一个带有您自己的属性。
    • 你能分享更多关于这个解决方案的信息吗? @FrankvanPuffelen 你好,你把这两个节点联系起来了吗?
    【解决方案2】:

    我用的是这个结构,看起来效果不错。

    app-id
    -> geodata
    --> geofire
    ---> key
    ----> g: <geohash>
    -----> l: 
    -------> 0: Lat
    -------> 1: Lon
    
    --> other
    ---> key
    ----> <otherhash object>
    

    当您保存数据时,您将使用以下方法单独保存 geofire 数据:

    mDatabase = FirebaseDatabase.getInstance().getReference("geodata");      
    
    geoFire = new GeoFire(mDatabase.child("geofire"));
    
    geoFire.setLocation(people.key, new GeoLocation(people.Lat, people.Lon));
    

    然后您将单独将数据保存在 firebase 中:

        mDatabase = FirebaseDatabase.getInstance().getReference("geodata");
    
        mDatabase.child("other").child(people.key).setValue(people);
    

    People 是我的自定义类对象,它将在 firebase 中使用相同的键进行序列化。

    希望这会有所帮助。 :)

    【讨论】:

      猜你喜欢
      • 2017-04-09
      • 1970-01-01
      • 1970-01-01
      • 2015-08-11
      • 2020-12-23
      • 1970-01-01
      • 2019-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多