После загрузки файла в Cloud Storage вы также можете получить или обновить метаданные файла, например, для обновления типа контента. Файлы также могут хранить пользовательские пары «ключ/значение» с дополнительными метаданными.
Получить метаданные файла
 Метаданные файла содержат общие свойства, такие как name , size и contentType (часто называемый типом MIME), а также некоторые менее распространённые, такие как contentDisposition и timeCreated . Эти метаданные можно получить из ссылки на Cloud Storage с помощью метода getMetadata() . getMetadata() возвращает Promise , содержащий полные метаданные, или ошибку, если Promise отклоняется. 
Web
import { getStorage, ref, getMetadata } from "firebase/storage"; // Create a reference to the file whose metadata we want to retrieve const storage = getStorage(); const forestRef = ref(storage, 'images/forest.jpg'); // Get metadata properties getMetadata(forestRef) .then((metadata) => { // Metadata now contains the metadata for 'images/forest.jpg' }) .catch((error) => { // Uh-oh, an error occurred! });
Web
// Create a reference to the file whose metadata we want to retrieve var forestRef = storageRef.child('images/forest.jpg'); // Get metadata properties forestRef.getMetadata() .then((metadata) => { // Metadata now contains the metadata for 'images/forest.jpg' }) .catch((error) => { // Uh-oh, an error occurred! });
Обновить метаданные файла
 Вы можете обновить метаданные файла в любой момент после завершения загрузки файла с помощью метода updateMetadata() . Подробнее о том, какие свойства можно обновить, см. в полном списке . Обновляются только свойства, указанные в метаданных, все остальные остаются без изменений. updateMetadata() возвращает Promise , содержащий полные метаданные, или ошибку, если Promise отклонен. 
Web
import { getStorage, ref, updateMetadata } from "firebase/storage"; // Create a reference to the file whose metadata we want to change const storage = getStorage(); const forestRef = ref(storage, 'images/forest.jpg'); // Create file metadata to update const newMetadata = { cacheControl: 'public,max-age=300', contentType: 'image/jpeg' }; // Update metadata properties updateMetadata(forestRef, newMetadata) .then((metadata) => { // Updated metadata for 'images/forest.jpg' is returned in the Promise }).catch((error) => { // Uh-oh, an error occurred! });
Web
// Create a reference to the file whose metadata we want to change var forestRef = storageRef.child('images/forest.jpg'); // Create file metadata to update var newMetadata = { cacheControl: 'public,max-age=300', contentType: 'image/jpeg' }; // Update metadata properties forestRef.updateMetadata(newMetadata) .then((metadata) => { // Updated metadata for 'images/forest.jpg' is returned in the Promise }).catch((error) => { // Uh-oh, an error occurred! });
 Вы можете удалить свойство метаданных, установив его на null : 
Web
import { getStorage, ref, updateMetadata } from "firebase/storage"; const storage = getStorage(); const forestRef = ref(storage, 'images/forest.jpg'); // Create file metadata with property to delete const deleteMetadata = { contentType: null }; // Delete the metadata property updateMetadata(forestRef, deleteMetadata) .then((metadata) => { // metadata.contentType should be null }).catch((error) => { // Uh-oh, an error occurred! });
Web
// Create file metadata with property to delete var deleteMetadata = { contentType: null }; // Delete the metadata property forestRef.updateMetadata(deleteMetadata) .then((metadata) => { // metadata.contentType should be null }).catch((error) => { // Uh-oh, an error occurred! });
Обработка ошибок
Ошибки при получении или обновлении метаданных могут возникать по ряду причин, включая отсутствие файла или отсутствие у пользователя прав доступа к нужному файлу. Подробнее об ошибках можно узнать в разделе «Обработка ошибок» документации.
Пользовательские метаданные
 Вы можете указать пользовательские метаданные как объект, содержащий String свойства. 
Web
const metadata = { customMetadata: { 'location': 'Yosemite, CA, USA', 'activity': 'Hiking' } };
Web
var metadata = { customMetadata: { 'location': 'Yosemite, CA, USA', 'activity': 'Hiking' } };
Вы можете использовать пользовательские метаданные для хранения дополнительных данных, специфичных для приложения, для каждого файла, но мы настоятельно рекомендуем использовать базу данных (например, Firebase Realtime Database ) для хранения и синхронизации этого типа данных.
Свойства метаданных файла
Полный список свойств метаданных файла доступен ниже:
| Свойство | Тип | Записываемый | 
|---|---|---|
| bucket | нить | НЕТ | 
| generation | нить | НЕТ | 
| metageneration | нить | НЕТ | 
| fullPath | нить | НЕТ | 
| name | нить | НЕТ | 
| size | число | НЕТ | 
| timeCreated | нить | НЕТ | 
| updated | нить | НЕТ | 
| md5Hash | нить | ДА при загрузке, НЕТ при обновленииMetadata | 
| cacheControl | нить | ДА | 
| contentDisposition | нить | ДА | 
| contentEncoding | нить | ДА | 
| contentLanguage | нить | ДА | 
| contentType | нить | ДА | 
| customMetadata | Объект, содержащий сопоставления строка->строка | ДА | 
Загрузка, скачивание и обновление файлов важны, но не менее важна и возможность их удаления. Давайте узнаем, как удалить файлы из Cloud Storage .