Programmatically delete field collection items
Copied from (and then tested):

https://www.drupal.org/node/2757827#comment-11398243

$user = User::load($user_id);
$storage = \Drupal::entityTypeManager()-&gt;getStorage('field_collection_item');
$fc_items = [];

foreach ($user-&gt;get('field_hobbies') as $item) {
    $fc_items[] = $item-&gt;value;
}

if (!empty($fc_items)) {
    $items = $storage-&gt;loadMultiple($fc_items);
    $storage-&gt;delete(items);
    $user-&gt;set('field_hobbies', array());
}

$user-&gt;save();