2016-11-04 4 views
0

データベース参照に「onDisconnectRemoveValue」と表示され、ユーザーが現在「チャット中」になっているときに表示され、ユーザーがチャットビューコントローラを離れるときにFIRDデータベースから切断したいと思っています。アプリケーションを完全に終了せずに切断機能?iOSのFirebaseからの切断

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です - iOS SDKでこれを見ることはできません – Halpo

+2

私が提供したリンクはiOS向けです。 –

+1

私はgoOfflineを使用した後にオンラインに戻って、 '.info/connected'リスナーが再接続されるたびに複数回トリガーされますか? – Halpo

関連する問題