پس از آپلود فایل در مرجع Cloud Storage ، میتوانید فرادادههای فایل را نیز دریافت و بهروزرسانی کنید، برای مثال، نوع محتوا را مشاهده یا بهروزرسانی کنید. فایلها همچنین میتوانند جفتهای کلید/مقدار سفارشی را با فرادادههای فایل اضافی ذخیره کنند.
دریافت متادیتای فایل
 فرادادههای فایل شامل ویژگیهای رایجی مانند name ، size و contentType (که اغلب به عنوان نوع MIME شناخته میشوند) علاوه بر برخی ویژگیهای کمتر رایج مانند contentDisposition و timeCreated هستند. این فرادادهها را میتوان با استفاده از متد getMetadata() از یک مرجع Cloud Storage بازیابی کرد. 
Kotlin
// Create a storage reference from our app val storageRef = storage.reference // Get reference to the file val forestRef = storageRef.child("images/forest.jpg")
forestRef.metadata.addOnSuccessListener { metadata -> // Metadata now contains the metadata for 'images/forest.jpg' }.addOnFailureListener { // Uh-oh, an error occurred! }
Java
// Create a storage reference from our app StorageReference storageRef = storage.getReference(); // Get reference to the file StorageReference forestRef = storageRef.child("images/forest.jpg");
forestRef.getMetadata().addOnSuccessListener(new OnSuccessListener<StorageMetadata>() { @Override public void onSuccess(StorageMetadata storageMetadata) { // Metadata now contains the metadata for 'images/forest.jpg' } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception exception) { // Uh-oh, an error occurred! } });
بهروزرسانی فراداده فایل
 شما میتوانید فرادادههای فایل را در هر زمانی پس از اتمام آپلود فایل با استفاده از متد updateMetadata() بهروزرسانی کنید. برای اطلاعات بیشتر در مورد اینکه چه ویژگیهایی میتوانند بهروزرسانی شوند، به لیست کامل مراجعه کنید. فقط ویژگیهای مشخص شده در فراداده بهروزرسانی میشوند، سایر موارد بدون تغییر باقی میمانند. 
Kotlin
// Create a storage reference from our app val storageRef = storage.reference // Get reference to the file val forestRef = storageRef.child("images/forest.jpg")
// Create file metadata including the content type val metadata = storageMetadata { contentType = "image/jpg" setCustomMetadata("myCustomProperty", "myValue") } // Update metadata properties forestRef.updateMetadata(metadata).addOnSuccessListener { updatedMetadata -> // Updated metadata is in updatedMetadata }.addOnFailureListener { // Uh-oh, an error occurred! }
Java
// Create a storage reference from our app StorageReference storageRef = storage.getReference(); // Get reference to the file StorageReference forestRef = storageRef.child("images/forest.jpg");
// Create file metadata including the content type StorageMetadata metadata = new StorageMetadata.Builder() .setContentType("image/jpg") .setCustomMetadata("myCustomProperty", "myValue") .build(); // Update metadata properties forestRef.updateMetadata(metadata) .addOnSuccessListener(new OnSuccessListener<StorageMetadata>() { @Override public void onSuccess(StorageMetadata storageMetadata) { // Updated metadata is in storageMetadata } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception exception) { // Uh-oh, an error occurred! } });
 شما میتوانید با ارسال null ، ویژگیهای فراداده قابل نوشتن را حذف کنید: 
Kotlin
// Create file metadata with property to delete val metadata = storageMetadata { contentType = null } // Delete the metadata property forestRef.updateMetadata(metadata).addOnSuccessListener { updatedMetadata -> // updatedMetadata.contentType should be null }.addOnFailureListener { // Uh-oh, an error occurred! }
Java
// Create file metadata with property to delete StorageMetadata metadata = new StorageMetadata.Builder() .setContentType(null) .build(); // Delete the metadata property forestRef.updateMetadata(metadata) .addOnSuccessListener(new OnSuccessListener<StorageMetadata>() { @Override public void onSuccess(StorageMetadata storageMetadata) { // metadata.contentType should be null } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception exception) { // Uh-oh, an error occurred! } });
مدیریت خطاها
دلایل مختلفی وجود دارد که ممکن است هنگام دریافت یا بهروزرسانی متادیتا، خطا رخ دهد، از جمله وجود نداشتن فایل یا نداشتن مجوز دسترسی کاربر به فایل مورد نظر. اطلاعات بیشتر در مورد خطاها را میتوانید در بخش «مدیریت خطاها» در مستندات بیابید.
فراداده سفارشی
 شما میتوانید با استفاده از متد setCustomMetadata() در کلاس StorageMetadata.Builder متادیتای سفارشی تعیین کنید. 
Kotlin
val metadata = storageMetadata { setCustomMetadata("location", "Yosemite, CA, USA") setCustomMetadata("activity", "Hiking") }
Java
StorageMetadata metadata = new StorageMetadata.Builder() .setCustomMetadata("location", "Yosemite, CA, USA") .setCustomMetadata("activity", "Hiking") .build();
شما میتوانید دادههای مختص برنامه را برای هر فایل در متادیتای سفارشی ذخیره کنید، اما ما اکیداً توصیه میکنیم از یک پایگاه داده (مانند Firebase Realtime Database ) برای ذخیره و همگامسازی این نوع دادهها استفاده کنید.
ویژگیهای فراداده فایل
لیست کاملی از ویژگیهای فراداده در یک فایل در زیر موجود است:
| دریافتکنندهی املاک | نوع | وجود دارد | 
|---|---|---|
 getBucket |  String | خیر | 
 getGeneration |  String | خیر | 
 getMetadataGeneration |  String | خیر | 
 getPath |  String | خیر | 
 getName |  String | خیر | 
 getSizeBytes |  long | خیر | 
 getCreationTimeMillis |  long | خیر | 
 getUpdatedTimeMillis |  long | خیر | 
 getMd5Hash |  String | خیر | 
 getCacheControl |  String | بله | 
 getContentDisposition |  String | بله | 
 getContentEncoding |  String | بله | 
 getContentLanguage |  String | بله | 
 getContentType |  String | بله | 
 getCustomMetadata |  String | بله | 
 getCustomMetadataKeys |  Set<String> | خیر | 
آپلود، دانلود و بهروزرسانی فایلها مهم است، اما توانایی حذف آنها نیز به همان اندازه مهم است. بیایید یاد بگیریم که چگونه فایلها را از Cloud Storage حذف کنیم.