如果我在firebase中有一个有效密钥,代码会返回一个" 1",如果我删除代码应返回的密钥" 0",因为快照不再存在。但只有在我设置persistenceEnabled = NO时才会发生这种情况。如果为YES,则第一次observeSingleEventOfType返回旧值" 1"哪个不存在!在第二次调用observeSingleEventOf之后,正确的值为" 0"退回。因此,在我看来,如果persistenceEnabled为YES,则在从firebase获取值之前,始终首先从磁盘返回该值。
- (void)viewDidLoad {
[super viewDidLoad];
[Firebase defaultConfig].persistenceEnabled = YES;
}
- (void)getSeenCounter {
Firebase *userRef = [Firebase userRef: @"keyname"];
[userRef removeAllObservers];
[userRef observeSingleEventOfType: FEventTypeValue withBlock: ^(FDataSnapshot *snapshot) {
if (snapshot.exists) {
//Value returned is 1
} else {
//Show a value of 0
}
}];
}
- (IBAction)showSeens:(id)sender {
[self getSeenCounter];
}