您好,我正在通过Firebase SDK控制嵌套温控器。太多的请求异常我们有很大的问题。我看到了一些相关的线索,但没有解决该问题。所以我想问一下是否有人设法解决了这个问题?
答案 0 :(得分:1)
来自https://developer.nest.com/documentation/data-rate-limits:
为避免错误,我们建议您将请求限制为每分钟最多一次通话。
从此,以及SO上的其他帖子,我相信你可以在任何60分钟的窗口中发出60个请求。但我认为这是Per Access Token限制。 Nest分别说他们对设备和结构进行速率限制写入 - 我没有达到写入限制,但是我没有对设备进行大量写入。
答案 1 :(得分:0)
我有类似的问题。但只有当我认证太多时才会这样。我不得不等待一段时间才能获得更改以进行身份验证。现在我有一个websocket运行来获取值,并没有给出任何问题。设定值是我要做的下一步。所以为此我不知道你可以发送多少请求
答案 2 :(得分:0)
为了解决这个限制,我做了以下几点:
使用此策略,发出命令的次数最多为每D秒一次。
以下是代码:
-(void) delayedSetValue:(NSArray *)valuesAndURL {
NSDictionary *values = valuesAndURL[0];
NSString *URL = valuesAndURL[1];
if ([self.subscribedURLs objectForKey:URL]) {
[[self.fireBi objectForKey:URL] runTransactionBlock:^FTransactionResult *(FMutableData *currentData) {
[currentData setValue:values];
return [FTransactionResult successWithValue:currentData];
} andCompletionBlock:^(NSError *error, BOOL committed, FDataSnapshot *snapshot) {
if (error) {
NSLog(@"Error: %@", error);
}
} withLocalEvents:NO];
}
}
/*
* Sets the values for the given firebase URL.
*/
- (void)setValues:(NSDictionary *)values forURL:(NSString *)URL
{
[NSObject cancelPreviousPerformRequestsWithTarget:self];
NSArray *valuesAndURL = @[values, URL];
[self performSelector:@selector(delayedSetValue:) withObject:valuesAndURL afterDelay:5.0f];
}