Buka konsol

Membuat Referensi Storage di Web

File Anda disimpan di bucket Google Cloud Storage. File di bucket ini disajikan dalam struktur hierarkis, seperti sistem file pada hard disk komputer Anda atau data dalam Firebase Realtime Database. Dengan membuat referensi ke sebuah file, aplikasi Anda akan mendapatkan akses ke file tersebut. Selanjutnya, referensi ini bisa digunakan untuk mengupload atau mendownload data, memperoleh atau mengupdate metadata, atau menghapus file. Referensi bisa menunjuk ke file tertentu atau ke level yang lebih tinggi dalam hierarki.

Jika Anda telah menggunakan Firebase Realtime Database, lokasi ini mungkin tidak asing bagi Anda, karena memang begitulah seharusnya. Namun, data file Anda tersimpan di Google Cloud Storage, bukan di Realtime Database.

Membuat Referensi

Untuk mengupload atau mendownload file, menghapus file, atau mendapatkan atau mengupdate metadata, Anda harus membuat referensi ke file yang ingin Anda operasikan. Referensi bisa dianggap sebagai penunjuk ke file di cloud. Referensi itu ringan, jadi Anda bisa menciptakan sebanyak yang Anda butuhkan dan menggunakannya kembali untuk beberapa operasi.

Buat referensi dari layanan storage() di aplikasi Firebase Anda. Referensi ini menunjuk ke root bucket Cloud Storage Anda.

// Get a reference to the storage service, which is used to create references in your storage bucket
var storage = firebase.storage();

// Create a storage reference from our storage service
var storageRef = storage.ref();

Anda bisa membuat referensi ke lokasi yang lebih rendah pada hierarki, misalnya 'images/space.jpg', dengan menggunakan metode child() pada referensi yang ada.

// Create a child reference
var imagesRef = storageRef.child('images');
// imagesRef now points to 'images'

// Child references can also take paths delimited by '/'
var spaceRef = storageRef.child('images/space.jpg');
// spaceRef now points to "images/space.jpg"
// imagesRef still points to "images"

Anda juga dapat menggunakan properti parent dan root untuk naik ke atas hierarki file. parent membuat naik satu tingkat, sementara root membuat naik sampai ke puncak.

// Parent allows us to move to the parent of a reference
var imagesRef = spaceRef.parent;
// imagesRef now points to 'images'

// Root allows us to move all the way back to the top of our bucket
var rootRef = spaceRef.root;
// rootRef now points to the root

child(), parent, dan root bisa dirangkai bersama beberapa kali, mengingat masing-masing menampilkan sebuah referensi. Pengecualiannya adalah parent dari root, yakni null.

// References can be chained together multiple times
var earthRef = spaceRef.parent.child('earth.jpg');
// earthRef points to 'images/earth.jpg'

// nullRef is null, since the parent of root is null
var nullRef = spaceRef.root.parent;

Properti Referensi

Anda bisa memeriksa referensi agar bisa lebih memahami file yang dituju oleh referensi tersebut menggunakan properti fullPath, name, dan bucket. Properti ini mendapatkan lokasi lengkap file, nama file, dan bucket tempat penyimpanan file tersebut.

// Reference's path is: 'images/space.jpg'
// This is analogous to a file path on disk
spaceRef.fullPath;

// Reference's name is the last segment of the full path: 'space.jpg'
// This is analogous to the file name
spaceRef.name;

// Reference's bucket is the name of the storage bucket where files are stored
spaceRef.bucket;

Pembatasan Referensi

Lokasi dan nama referensi bisa memuat rangkaian karakter Unicode yang valid, tetapi pembatasan tertentu tetap diberlakukan, antara lain:

  1. Panjang total reference.fullPath harus antara 1 dan 1.024 byte jika berenkode UTF-8.
  2. Tidak mengandung karakter Enter atau Line Feed.
  3. Hindari penggunaan #, [, ], *, atau ?, karena karakter tersebut tidak berfungsi dengan baik dengan fitur lain, seperti Firebase Realtime Database atau gsutil.

Contoh Lengkap

// Points to the root reference
var storageRef = firebase.storage().ref();

// Points to 'images'
var imagesRef = storageRef.child('images');

// Points to 'images/space.jpg'
// Note that you can use variables to create child values
var fileName = 'space.jpg';
var spaceRef = imagesRef.child(fileName);

// File path is 'images/space.jpg'
var path = spaceRef.fullPath

// File name is 'space.jpg'
var name = spaceRef.name

// Points to 'images'
var imagesRef = spaceRef.parent;

Selanjutnya, mari pelajari cara mengupload file ke Cloud Storage.