我正在尝试使用以下查询查询Firebase:
Firebase *refReplies = [[Firebase alloc] initWithUrl:kFirebaseURLReplies];
[[[refReplies queryOrderedByChild:kChildKey] queryEqualToValue:kQueryValue] observeEventType:FEventTypeChildAdded
withBlock:^(FDataSnapshot *snapshot) {
NSLog(@"reply key:%@",snapshot.key);
}];
当我运行它时,我得到正确的值,但每个值都返回两次,我不知道为什么。我在我的控制台日志中看到了这样的内容:
2015-08-20 14:06:35.220 AppName[1234:5678910] reply key:-keyName1
2015-08-20 14:06:35.221 AppName[1234:5678910] reply key:-keyName1
2015-08-20 14:06:35.221 AppName[1234:5678910] reply key:-keyName2
2015-08-20 14:06:35.222 AppName[1234:5678910] reply key:-keyName2
2015-08-20 14:06:35.222 AppName[1234:5678910] reply key:-keyName3
2015-08-20 14:06:35.223 AppName[1234:5678910] reply key:-keyName3
我也在其他地方运行类似的查询,同样的事情发生了。我可以忽略任何重复的快照,这对我来说相对简单,但这只是一个解决方法,我正在寻找解决方案。
我也看了这个问题:Firebase FEventTypeChildAdded callback gets called multiple times for the same new object。但是,这个解决方案不会解决我的问题,考虑到我的应用程序总是返回两个值,无论我尝试多少次重新登录"或者添加另一个观察事件。