2014-11-01 2 views
0

Мне интересно, была ли у кого-то эта проблема, или если это вообще не проблема, а способ использования firebase.Использование firebase в автономном режиме с помощью iOS

Я использую FEventTypeChildChanged для мониторинга изменений в моей firebase в моем приложении iOS8. Однако, если приложение в настоящее время не запущено, а ребенок изменен в Интернете в другом месте, это событие не вызывается при повторном запуске приложения.

Он работает нормально, когда приложение находится в сети.

Я использовал firebase несколько месяцев назад, и я был уверен, что это событие было вызвано при возврате из автономного режима, однако похоже, что это не так.

код, я использую это прямо из firebase документов:

Firebase *postsRef = [[Firebase alloc] initWithUrl: @"https://*******.firebaseio.com/"]; 

[postsRef observeEventType:FEventTypeChildChanged withBlock:^(FDataSnapshot *snapshot) { 
    NSLog(@"%@", snapshot.value); 
} withCancelBlock:^(NSError *error) { 
    NSLog(@"%@", error.description); 
}]; 

И структура JSON выглядит примерно так:

{ 
    "test" : { 
    "A value" : "test value" <== I am modifying 'test value' 
    } 
} 

Спасибо за вашу помощь заранее

+0

Что именно вы имеете в виду при перезагрузке? Детали и шаги для воспроизведения должны быть очень точными здесь, так как существует много возможных перестановок. – Kato

+0

Если я либо принудительно закрыл приложение и снова открыл его, либо даже оставил его включенным, верните устройство iOS в онлайн-режиме, обновленные данные не будут отправляться на устройство iOS из firebase. – larrysanchez

ответ

1

приложения, никогда не будут получать «детские изменения» сразу после (повторного) запуска. Вместо этого Firebase просто предоставит вам соответствующий набор событий, чтобы вы были в курсе текущего состояния данных. При новом запуске приложения это будет просто куча «дочерних добавленных» событий для всех существующих детей.

После того, как ваше приложение запустится, и вы получили свои первоначальные «дочерние» события, тогда, если один из этих детей изменится, Firebase уведомит вас о событии «ребенок изменен». Но вы получите только событие «с измененным ребенком» после того, как ранее получилось событие «добавлено ребенком».