updateProperties method
Updates multiple subscription properties simultaneously.
Properties are key-value pairs that can be used to segment users or customize notification content. This method allows batch updates to properties.
Parameters:
- properties: Map of property names to their values- Set a value to null to remove the property
 
Example:
await SuperFCM.instance.updateProperties({
  'userType': 'premium',
  'lastLogin': DateTime.now().toIso8601String(),
  'oldProperty': null, // This will remove the property
});
Implementation
Future<bool> updateProperties(Map<String, dynamic> properties) async {
  return _queueOrExecute("updateProperties", () async {
    logger.d('Updating ${properties.length} properties');
    final response = await _patch(
        'subscriptions/${subscription?.id}',
        {
          'properties': properties,
        },
        _config!.cacheOnOffline);
    return _handleResponse(
      response,
      'update properties',
      onSuccess: (response) {
        if (subscription != null) {
          final Map<String, dynamic> updatedProps = Map<String, dynamic>.from(
            subscription!.properties ?? {},
          );
          // Update or remove properties based on the provided values
          properties.forEach((key, value) {
            if (value == null) {
              updatedProps.remove(key);
            } else {
              updatedProps[key] = value;
            }
          });
          subscription = subscription!.copyWith(properties: updatedProps);
          _storeSubscription();
        }
      },
    );
  });
}