私はアプリケーションでFirebaseを使用します。私はデータベースにユーザのステータスを記録したい、現在アプリケーションに入っているかどうか。公式文書のコードを使用します。これはこの作業を確実にする必要があります。アプリケーションがオープンされると、値はNOに設定され、YESに変更されます。しかし、アプリケーションの終了とバックグラウンドへの移行では、ブロックは呼び出されず、値は変更されません。 36::ここに私のコードは...アプリケーションを終了すると、ブール値がnoに設定されない
FIRDatabaseReference *connectedRef = [[FIRDatabase database] referenceWithPath:@".info/connected"];
[connectedRef observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
if([snapshot.value boolValue]) {
NSLog(@"CONNECTED");
} else {
NSLog(@"NOT CONNECTED");
}
}];
2017年1月17日13である38.203トリッカー[6293:817528]
2017年1月17日13接続されていません:36:40.863トリッカー[ 6293:817528] CONNECTED
コンソールには、次の情報が表示されます。この情報は、アプリケーションが開かれてから2秒後にNOがYESに変わることを示しています。しかし、アプリケーションが閉じられても何も起こりません...
何か問題が発生する可能性がありますか?
ありがとうございます!私はこれらの機能の操作方法を知り、それらを使用しようとしました。しかし、残念ながら、アプリケーションがクラッシュした場合、値は変更されず、他のユーザーはこのユーザーがオンラインであることがわかります –
@SashaTsvigunアプリケーションはクラッシュしません。クラッシュした場合、コードは停止します。 –
Hay @SashaTsvigunこのコードにはアプリケーションがクラッシュするようなものはありません。あなたは別のポジションで墜落します。これらが起こっている場所を修正するか、コードを貼り付けて正確にクラッシュさせるようにしてください。 –