如何在 iOS 上使用 Firebase 取消 Nest ETA?

How do you cancel a Nest ETA using Firebase on iOS?

根据 nest API 文档:

"To cancel an eta, send estimated_arrival_window_begin = 0. Check that you're sending an integer (0) in this call, not a string ("0"), 否则调用会失败。"

https://developers.nest.com/documentation/cloud/eta-reference/

我的代码基于使用 Firebase 的 iOS NestDK 示例。

我使用addSubscriptionToURL方法设置如下:

[[FirebaseManager sharedManager] addSubscriptionToURL:[NSString stringWithFormat:@"structures/%@/eta", structureId] withBlock:^(FDataSnapshot *snapshot) {}];

然后我可以成功调用为特定行程设置预计到达时间 window。

但是,我似乎无法取消同一行程的预计到达时间。如果我只指定 trip_idestimated_arrival_window_begin 属性,我会收到一条错误消息,抱怨缺少 estimated_arrival_window_end 字段。

NSMutableDictionary *values = [[NSMutableDictionary alloc] init];
[values setValue:[_tripId UUIDString] forKey:@"trip_id"];
[values setValue:[NSNumber numberWithInt:0] forKey:@"estimated_arrival_window_begin"];
[[FirebaseManager sharedManager] setValues:values forURL:[NSString stringWithFormat:@"structures/%@/eta", structureId]];

我也尝试将 estimated_arrival_window_end 设置为 0,但随后我收到一条错误消息,指出 estimated_arrival_window_begin 已过去。它似乎将 0 值解释为时间的开始。无论如何,在 1970 年的某个时候!

我做错了什么?!

谢谢!

您是否将 Nest 帐户与通过 Nest Home Simulator 创建的虚拟设备一起使用?使用虚拟设备与真实设备相比似乎存在错误。请尝试在真实设备上使用 Nest 帐户。