Cara hosting di firebase

Artikel ini terakhir diperbaharui pada 12 August 2020.

Halo selamat pagi semua, kali ini saya akan share bagaimana caranya hosting static file seperti css, js dan html pada platform firebase. Kemudian anda bisa mengaksesnya melalui web browser.

Perhatian!

Mohon agar anda membaca dengan seksama artikel ini, karena beberapa case menggunakan perintah-perintah CLI yang harus anda langsung praktekan jika ingin melihat hasilnya secara langsung.

Firebase adalah salah satu platform dari google yang dimana platform ini termasuk bagian dari ekosistem google yang besar dan komplek, firebase digunakan untuk keperluan development mobile programming seperti ios, android dan web.

Platform ini cukup lengkap karena memberikan fitur seperti database dan storage yang dimana storage nya bisa anda pilih di jakarta, karena GCP sudah membuat data center di indonesia.

Berikut adalah langkah untuk membuat static file pada firebase.

Login / Daftar firebase

  • Login ke firebase https://firebase.google.com/
  • Buat project baru (add project)
  • Kemudian ada pilihan untuk menganalisa trafic project anda dengan google analytic, hidupkan opsi ini secara default atau anda bisa matikan.
  • Klik continue, project sedang di buat silahkan anda tunggu
  • Klik continue jika sudah selesai
  • Pilih project
  • Ada beberapa pilihan seperti, ios, android, web dan bigquery
  • Kemudian pilih web <>

Register Aplikasi

Setelah anda memilih web, langkah selanjutnya adalah meregister nama dari aplikasi anda, bisa gunakan nama anda atua apapun yang mudah di ingat, nantinya akan diberikan suggestion oleh google. Klik Register app.

firebase application

Tambah firebase SDK

Secara default SDK firebase sudah tercreate, anda tingga melihat dan mempelajari bagaimana firebase melakukan request js.

<!-- The core Firebase JS SDK is always required and must be listed first -->
<script src="/__/firebase/7.17.2/firebase-app.js"></script>

<!-- TODO: Add SDKs for Firebase products that you want to use
     https://firebase.google.com/docs/web/setup#available-libraries -->

<!-- Initialize Firebase -->
<script src="/__/firebase/init.js"></script>

Jika anda sudah melihat sekilas bagaimana request js sdk di firebase silahkan klik next.

Install CLI Firebase

Pada tahap ini jika anda menggunakan macos / linux silahkan open terminal dan kemudian jalankan perintah ini :

npm install -g firebase-tools

bisa juga gunakan juga perintah ini (saya gunakan perintah ini btw, tidak menggunakan npm) :

curl -sL https://firebase.tools | bash

Jika anda pengguna windows anda bisa gunakan node.js silahkan kunjungi halaman : node.js atau bisa download firebase binnary (100MB besar filenya) disini.

Biarkan firebase cli terinsall di komputer anda, ini memakan waktu berkisar 1-2 menit tergantung kecepatan koneksi internet anda dirumah.

firebase cli installation

Deploy Firebase Hosting

Setelah anda menginstall CLI firebase di komputer, langkah selanjutnya adalah mendeploy program / web anda agar bisa diakses oleh public.

Untuk melakukan depploy, anda perlu login melalui firebase CLI yang sudah anda install sebelumnya, login melalui CLI membutuhkan auth google pada browser anda, jadi jangan lupa untuk melihatnya di browser ya.

Login

Perintah login nya sebagai berikut (masih di dalam mode terminal ):

firebase login

Silahkan masukan username /email dan password gmail anda ke browser, atau beri auth untuk firebase cli. Anda perlu melakukan setup sekali saja untuk login ini, kemudian jika anda menggunakan cli lagi, otomatis sudah login jika diberikan perintah firebase login.

firebase login notification

Init

Langkah selanjutnya adalah melakukan intialize dari project yang akan anda publish, dengan menggunakan perintah :

firebase init

Jika sudah, anda sekarang berada pada project directory firebase, langkah selanjutnya adalah memilih untuk setup. Karena kita akan memilih hosting, maka beri tanda HIJAU pada Hosting : configure and deploy Firebase Hosting sites, caranya adalah dengan menekan SPASI pada check box yang sudah disediakan, gunakan tanda panah ke atas dan kebawah untuk memilih

You're about to initialize a Firebase project in this directory:

  /Users/hendrawijaya

Before we get started, keep in mind:

  * You are initializing your home directory as a Firebase project
  * You are initializing in an existing Firebase project directory

? Which Firebase CLI features do you want to set up for this folder? Press Space
 to select features, then Enter to confirm your choices. (Press <space> to selec
t, <a> to toggle all, <i> to invert selection)
❯◯ Database: Deploy Firebase Realtime Database Rules
 ◯ Firestore: Deploy rules and create indexes for Firestore
 ◯ Functions: Configure and deploy Cloud Functions
 ◯ Hosting: Configure and deploy Firebase Hosting sites
 ◯ Storage: Deploy Cloud Storage security rules
 ◯ Emulators: Set up local emulators for Firebase features

Anda cukup memilih Yes (y), agar secara default file hosting anda berada pada folder public yang sudah direkomendasikan oleh google, btw saya mendeploy ulang project yang sudah ada sebelumnya, maka dari itu disini terlihat pertanyaan apakah file eksisting (index.html) akan direplace atau tidak, jika anda deploy baru maka tidak akan muncul.

=== Project Setup

First, let's associate this project directory with a Firebase project.
You can create multiple project aliases by running firebase use --add, 
but for now we'll just set up a default project.

i  .firebaserc already has a default project, using hendrawijayadotnet.

=== Hosting Setup

Your public directory is the folder (relative to your project directory) that
will contain Hosting assets to be uploaded with firebase deploy. If you
have a build process for your assets, use your build's output directory.

? What do you want to use as your public directory? public
? Configure as a single-page app (rewrite all urls to /index.html)? Yes
? File public/index.html already exists. Overwrite? Yes
✔  Wrote public/index.html

i  Writing configuration info to firebase.json...
i  Writing project information to .firebaserc...

✔  Firebase initialization complete!

Deploy

Setelah anda melakukan init dan berhasil, langkah selanjutnya adalah mendeploy program anda agar bisa di akses oleh public, perintah nya adalah sebagai berikut :

firebase deploy

Setelah anda melakukan deploy, nantinya akan diberikan link dimana app anda dapat diakses melalui browser, dengan subdomain nama project anda dan diakhiri .web.app. Sebagai contoh anda bisa mengakses hasil deploy dari project ini : https://hendrawijayadotnet.web.app

Apples-MacBook:~ hendrawijaya$ firebase deploy

=== Deploying to 'hendrawijayadotnet'...

i  deploying hosting
✔  database: rules syntax for database hendrawijayadotnet is valid
i  hosting[hendrawijayadotnet]: beginning deploy...
i  hosting[hendrawijayadotnet]: found 1 files in public
✔  hosting[hendrawijayadotnet]: file upload complete
i  hosting[hendrawijayadotnet]: finalizing version...
✔  hosting[hendrawijayadotnet]: version finalized
i  hosting[hendrawijayadotnet]: releasing new version...
✔  hosting[hendrawijayadotnet]: release complete

✔  Deploy complete!

Hosting URL: https://hendrawijayadotnet.web.app

Kesimpulan

Oke sampai disitu terlebih dahulu, anda dapat melakukan explore untuk modifikasi file index.html dan disesuaikan dengan halaman landing page misalnya, kemudian cotume domain agar alamat https://namaproject.web.app bisa menggunakan nama domain anda misalnya https://domainanda.com.

Fitur eksisting ini bisa free dengan ketentuan sebagai berikut :

  • Quota Bandwith 10GB per bulan
  • Quota Storage 10GB
quota firebase free plan

Anda juga dapat memantau berapa quota yang sudah terpakai pada menu hosting > usage.

usage dashboard

Oh ya jika anda ingin mengaktivkan fitur storage klik pada project anda dan klik storage, kemudian anda bisa memilih dimana lokasi storage yang akan anda buat, saya sendiri memilih jakarta, ada dokumentasi dimana lokasi jakarta bisa anda klik dan pilih.

firebase storage management

Selamat mencoba, selamat belajar dan explore.

Wassalam
Hendra Wijaya

Leave a Comment

Your email address will not be published. Required fields are marked *