После загрузки файла в облачное хранилище вы также можете получать и обновлять метаданные файла, например, просматривать или обновлять тип контента. Файлы также могут хранить пользовательские пары «ключ/значение» с дополнительными метаданными.
Получить метаданные файла
 Метаданные файла содержат общие свойства, такие как name , size и contentType (часто называемый типом MIME), а также некоторые менее распространённые, такие как contentDisposition и timeCreated . Эти метаданные можно получить из ссылки на облачное хранилище с помощью метода getMetadata() .
// Create reference to the file whose metadata we want to retrieve
final forestRef = storageRef.child("images/forest.jpg");
// Get metadata properties
final metadata = await forestRef.getMetadata();
// Metadata now contains the metadata for 'images/forest.jpg'
Обновить метаданные файла
 Вы можете обновить метаданные файла в любой момент после его загрузки с помощью метода updateMetadata() . Подробнее о том, какие свойства можно обновить, см. в полном списке . Обновляются только свойства, указанные в метаданных, все остальные остаются без изменений.
// Create reference to the file whose metadata we want to change
final forestRef = storageRef.child("images/forest.jpg");
// Create file metadata to update
final newMetadata = SettableMetadata(
  cacheControl: "public,max-age=300",
  contentType: "image/jpeg",
);
// Update metadata properties
final metadata = await forestRef.updateMetadata(newMetadata);
// Updated metadata for 'images/forest.jpg' is returned
 Вы можете удалить записываемые свойства метаданных, передав null :
// Delete the cacheControl property
final newMetadata = SettableMetadata(cacheControl: null);
final metadata = await forestRef.updateMetadata(newMetadata);
Обработка ошибок
Ошибки при получении или обновлении метаданных могут возникать по ряду причин, включая отсутствие файла или отсутствие у пользователя прав доступа к нужному файлу. Подробнее об ошибках можно узнать в разделе «Обработка ошибок» документации.
Пользовательские метаданные
 Вы можете указать пользовательские метаданные, используя параметр customMetadata конструктора SettableMetadata :
// Create reference to the file whose metadata we want to change
final forestRef = storageRef.child("images/forest.jpg");
// Create file metadata to update
final newCustomMetadata = SettableMetadata(
  customMetadata: {
    "location": "Yosemite, CA, USA",
    "activity": "Hiking",
  },
);
// Update metadata properties
final metadata = await forestRef.updateMetadata(newCustomMetadata);
// Updated metadata for 'images/forest.jpg' is returned
Вы можете хранить специфичные для приложения данные для каждого файла в пользовательских метаданных, но мы настоятельно рекомендуем использовать базу данных (например, Firebase Realtime Database ) для хранения и синхронизации этого типа данных.
Свойства метаданных файла
Полный список свойств метаданных файла доступен ниже:
| Свойство | Тип | Можно ли установить? | 
|---|---|---|
| bucket | String | Нет | 
| generation | String | Нет | 
| metageneration | String | Нет | 
| metadataGeneration | String | Нет | 
| fullPath | String | Нет | 
| name | String | Нет | 
| size | int | Нет | 
| timeCreated | DateTime | Нет | 
| updated | DateTime | Нет | 
| md5Hash | String | Нет | 
| cacheControl | String | Да | 
| contentDisposition | String | Да | 
| contentEncoding | String | Да | 
| contentLanguage | String | Да | 
| contentType | String | Да | 
| customMetadata | Map<String, String> | Да | 
Загрузка, скачивание и обновление файлов важны, но не менее важна и возможность их удаления. Давайте узнаем, как удалить файлы из облачного хранилища.