我正在像这样创建一个 Firebase 更新字典
NSDictionary *update = @{
key1 : value1,
key2 : value 2,
key3 : value 3
};
[baseRef updateChildValues:update withCompletionBlock:^(NSError *error, Firebase *ref) {
// complete
}];
但我也想在同一个更新中保存一个位置的坐标,也就是不必做 2 个单独的调用。我已经查看了这个Github 页面,但我不知道如何做这样的事情
[geoFire setLocation:[[CLLocation alloc] initWithLatitude:37.7853889 longitude:-122.4056973]
forKey:@"firebase-hq"];
在与我的第一个示例相同的更新中?
有没有首选的方法来做到这一点,还是我需要自己做点什么?例如更改库或将CLLocation
更新设置为任何其他变量?像这样的东西:
-(void)setLocation:(CLLocation *)location forRef:(Firebase *)ref
{
NSNumber *lat = [NSNumber numberWithDouble:location.coordinate.latitude];
NSNumber *lng = [NSNumber numberWithDouble:location.coordinate.longitude];
NSDictionary *update = @{ @"location" : @[ lat, lng ] };
[ref setValue:update withCompletionBlock:^(NSError *error, Firebase *ref) {
// complete
}];
}
编辑
这是一段与我的项目非常相似的代码:
-(void)uploadUserId:(NSString *)userId withPlace:(GMSPlace *)place
{
Firebase *ref = [[Firebase alloc] initWithUrl:baseRefUrl];
NSNumber *lat = [NSNumber numberWithDouble:place.coordinate.latitude];
NSNumber *lng = [NSNumber numberWithDouble:place.coordinate.longitude];
NSString *geoHash = [GFGeoHash newWithLocation:place.coordinate].geoHashValue;
NSDictionary *locationDetails = @{ @"l" : @[ lat, lng ], @"g" : geoHash};
NSDictionary *update = @{
[NSString stringWithFormat:@"/users/%@/", userId] : locationDetails
};
[ref updateChildValues:update withCompletionBlock:^(NSError *error, Firebase *ref) {
// complete
}];
}