connect method
Future<void>
connect({
- required String userId,
- required String channelId,
- Map<
String, dynamic> ? metadata, - String? displayName,
override
Marks userId as online in the given channel.
Implementation
@override
Future<void> connect({
required String userId,
required String channelId,
Map<String, dynamic>? metadata,
String? displayName,
}) async {
final ref = _presenceRef(channelId, userId);
final onlineRecord = <String, dynamic>{
'userId': userId,
if (displayName != null) 'displayName': displayName,
'isOnline': true,
'lastSeen': ServerValue.timestamp,
if (metadata != null) 'metadata': metadata,
};
final offlineRecord = <String, dynamic>{
'userId': userId,
if (displayName != null) 'displayName': displayName,
'isOnline': false,
'lastSeen': ServerValue.timestamp,
if (metadata != null) 'metadata': metadata,
};
await ref.onDisconnect().set(offlineRecord);
await ref.set(onlineRecord);
}