subscribe method
Future<ParseLiveQuerySubscription>
subscribe(
- ParseQuery<
ParseObject> query, { - ParseLiveQuerySubscription? subscription,
Implementation
Future<ParseLiveQuerySubscription> subscribe(
ParseQuery<ParseObject> query, {
ParseLiveQuerySubscription? subscription,
}) async {
final selectedKeys = query.selectedKeys;
final Map<String, dynamic>? where = query.toJsonParams()['where'];
subscription ??= ParseLiveQuerySubscription(
clientId: _clientId,
requestId: requestIdCounter++,
parseQuery: query,
);
if (subscription.requestId != null) {
mapRequestSubscription[subscription.requestId!] = subscription;
}
final subscribeMessage = <String, dynamic>{
'op': 'subscribe',
'requestId': subscription.requestId,
'query': <String, dynamic>{
'className': query.className,
'where': where ?? {},
}
};
if (selectedKeys != null && selectedKeys.isNotEmpty) {
subscribeMessage['fields'] = selectedKeys;
}
final user = await ParseUser.currentUser;
if (user != null && user.sessionId != null) {
subscribeMessage['sessionToken'] = user.sessionId;
}
parseLiveQueryClient.sendMessage(json.encode(subscribeMessage));
return subscription;
}