2016-11-04 4 views
0

У меня есть onDisconnectRemoveValue по ссылке базы данных, чтобы показать, когда пользователь в настоящее время находится «в чате», и я хотел бы отключиться от FIRDatabase, когда пользователь покидает контроллер просмотра чата - как я могу вызвать это отключить функцию без полного завершения приложения?Отключение от Firebase на iOS

FIRDatabaseReference *connectedRef = [self.dbRef child:@".info/connected"]; 
    [connectedRef observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) { 
     if (snapshot.value) { 
      NSString *path = [NSString stringWithFormat:@"connections/%@/participants",self.refID]; 
      FIRDatabaseReference *participantsRef = [self.dbRef child:path]; 
      [participantsRef setValue:@{@"avatar":@"avatarURL",@"handle":[self senderDisplayName]} withCompletionBlock:^(NSError * _Nullable error, FIRDatabaseReference * _Nonnull ref) { 
       [ref onDisconnectRemoveValue]; 
      }]; 
     } 
    }]; 

ответ

1

Вы можете вызвать [[FIRDatabase database] goOffline]; немедленно вызвать соединение будет закрыто. Это вызовет обработчик onDisconnect на сервере, хотя может произойти задержка до этого.

+0

это JS - не видно этого в SDK iOS – Halpo

+2

Ссылка, предоставленная мной для iOS. –

+1

Когда я использую goOffline, а затем возвращаюсь в онлайн, прослушиватель «.info/connected» запускается несколько раз за каждый раз, когда я снова подключился? – Halpo

Смежные вопросы