ユーザーがチャットを開くたびにユーザーのオンラインステータスを追加しようとしています。 ChatVCFirebaseチャットセットのユーザーのオンラインステータス
private func userIsOnline() {
// Firebase make this user online
firebaseLastSeen = Constants.getFirebaseOnlineStatus(SMBUser.getCurrentUser().getId())
firebaseLastSeen.setValue("Online")
}
private func observerUserOnline(){
firebaseLastSeen.observeEventType(.Value, withBlock: { snapshot in
print(snapshot.value)
self.userIsOnline()
}, withCancelBlock: { error in
print(error.description)
})
}
で
public static func getFirebaseOnlineStatus(userRef: String) -> FIRDatabaseReference{
return FIRDatabase.database().reference()
.child("meta")
.child(userRef)
.child("last_seen")
}
このロジックは、私はその後、observerUserOnline()
を削除した場合ので、毎回値が変わると、私は、再びOnline
に値を変更しています、私にとって非常に悪いように思わ値はOnline
のlast_seen
に更新されますが、ユーザーがチャットでオンラインであっても2-3秒後にはtime(unix format)
に変更されています。
この問題に対処するより良い方法はありますか?