watchPresence method

  1. @override
Stream<List<PresenceRecord>> watchPresence({
  1. required String channelId,
})
override

Emits the list of currently online users whenever it changes.

Implementation

@override
Stream<List<PresenceRecord>> watchPresence({required String channelId}) {
  final ref = _db.ref('presence/$channelId');
  return ref.onValue.map((event) {
    final raw = event.snapshot.value;
    if (raw is! Map) {
      return <PresenceRecord>[];
    }
    return _parseRecords(
      raw as Map<Object?, Object?>,
    ).where((r) => r.isOnline).toList();
  });
}