Firebase iOS - 在调用observeSingleOfEventType时保证FDataSnapshot

时间:2016-02-04 20:28:18

标签: ios firebase setvalue

我想澄清一下Firebase对observeSingleEventOfType返回的FDataSnapshot的保证。特别是the iOS docs state:

  

值事件始终在最后触发,并保证包含   来自该快照之前发生的任何其他事件的更新   服用。

这是否也保证调用observeSingleEventOfType后发生的更新不包括在内?

例如,在以下代码中:

Firebase *ref = [[Firebase alloc] initWithUrl:@"someUrl"];
[ref setValue:@{@"someKey1" : @"someValue1"}];
[ref observeSingleEventOfType:FEventTypeValue 
    withBlock:^(FDataSnapshot *snapshot) {
        // is it ever possible that snapshot will contain someKey2?
}
[ref setValue:@{@"someKey2" : @"someValue2"}];

我想知道快照是否可能包含" someKey2,"或者快照是否仅包括在调用observeSingleEventOfType之前发生的更新?

1 个答案:

答案 0 :(得分:1)

调用setValue()不是一个事件;你在这里很困惑。您可以将事件传递到observe[Single]Event*(),它们是enumerated here

Firebase不是同步的,它不会等待你的写完成。但是,如果您收听ChildAdded的{​​{1}}和observeSingleEventOfType(),那么"快照"中的所有子键。将会触发value个事件。

如果您想等待写入完成,请使用ChildAdded

withCompletionBlock