Menyiapkan Firebase untuk Proyek Anda Berikutnya
Indonesian (Bahasa Indonesia) translation by Muhammad Gufron (you can also view the original English article)
Dalam tutorial hari ini kita akan membuat Anda bangun dan berjalan dengan Firebase dengan membangun sebuah aplikasi sederhana ruang chat dengan memanfaatkan Firebase's Javascript API. Aplikasi ini akan menyediakan Anda dengan blok bangunan untuk mengembangkan aplikasi real-time yang lebih maju pada proyek-proyek Anda sendiri.
Persiapan
Untuk mendapatkan Firebase berdiri dan berjalan, Anda harus membuat akun gratis pengembang dengan mengunjungi situs web mereka, dan mendaftar. Setelah Anda telah berhasil terdaftar, Firebase akan mengarahkan Anda ke dashboard akun Anda di mana Anda akan memiliki akses ke semua lokasi data Firebase dan fitur lain yang rapi. Namun, benar sekarang Anda harus memilih Firebase data lokasi berjudul, MY FIRST APP. merasa bebas untuk mengubah nama aplikasi ini atau membuat yang baru.
Ketika, Firebase data lokasi diciptakan, ditugaskan nya sendiri unik-nama host. Nama host yang unik ini sangat penting; karena ini adalah lokasi di mana data Anda akan dibaca dari dan ditulis juga. Kita akan membahas nama host secara lebih mendalam, kemudian dalam tutorial tapi sekarang:
Mari Mulai Membangun
Item pertama dalam agenda: buat file HTML baru yang merujuk pada klien Firebase, jQuery, dan Bootstrap CDN. Cukup jelas bahwa kita perlu mereferensikan CDN Firebase. Sekarang, mungkin tidak jelas mengapa kami merujuk baik jQuery dan Bootstrap. Saya menggunakan jQuery dan Bootstrap untuk pengembangan aplikasi yang cepat. Kedua perpustakaan tersebut memungkinkan saya untuk melakukan hal-hal sangat cepat dan mereka tidak memerlukan banyak tangan pengkodean. Namun, saya akan tidak mencakup jQuery atau Bootstrap secara terperinci besar; Jadi jangan ragu untuk mempelajari lebih lanjut tentang library JavaScript ini pada Anda sendiri.
HTML
Markup yang mengimplementasikan apa yang digambarkan adalah sebagai berikut:
1 |
<!DOCTYPE html>
|
2 |
<html>
|
3 |
<head>
|
4 |
<meta charset="utf-8"> |
5 |
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
6 |
<title>Firebase Chat Application</title> |
7 |
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css"> |
8 |
</head>
|
9 |
<body>
|
10 |
|
11 |
<script src="https://cdn.firebase.com/js/client/1.0.6/firebase.js"></script> |
12 |
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> |
13 |
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script> |
14 |
</body>
|
15 |
</html>
|
Sekarang setelah file HTML kami dibuat dan merujuk pada CDN yang benar, mari mulai mengerjakan rest aplikasi kami.
Pertama, Kita perlu menentukan fungsi penting apa yang dibutuhkan aplikasi ini. Tampaknya bahwa kebanyakan aplikasi chat room gaya memiliki dua kesamaan: kotak pesan untuk mengirim pesan ke server dan bagian yang sudah dipopulasi dengan pesan dari server. Dalam kasus kami, server ini akan menjadi lokasi data Firebase kami.
Mari kita menerapkan kotak pesan untuk mengirim pesan ke server sebelum tangan. Ini akan memerlukan kita untuk membuat antarmuka yang sederhana yang mencakup sebuah field input
dan tombol submit dibungkus dalam form
tags. Karena kita menggunakan referensi Bootstrap stylesheet, kami memiliki kemudahan menggunakan beberapa style bootstrap standar untuk membuat antarmuka. Seperti yang saya katakan sebelumnya, ini sangat nyaman dan memungkinkan kita untuk menulis lebih sedikit kode dengan tangan.
Jadi mari kita tempatkan div
dengan atribut kelas container
langsung setelah tag body
pembuka dalam file HTML. Ini adalah fitur bootstrap yang menyediakan batasan lebar dan padding untuk konten halaman. Dalam wadah tag, memungkinkan menambahkan judul dibungkus dalam tag H1
, sehingga kami dapat memberikan aplikasi nama deskriptif. Judul saya akan, "Firebase Chat Appication". Jangan ragu untuk menggunakan kreativitas Anda sendiri saat menulis judul Anda.
Markup yang mengimplementasikan apa yang saya dijelaskan di atas, terlihat seperti ini:
1 |
<div class="container"> |
2 |
<h1>Firebase Chat Application</h1> |
3 |
</div>
|
Selain itu, kita juga perlu menambahkan div
dengan atribut class: panel
dan panel-default
. Sebuah panel adalah komponen Bootstrap yang menyediakan kotak sederhana yang berisi empat interior DIVs: panel-heading
, panel-title
, panel-body
, dan panel-footer
secara default. Kami tidak akan menggunakan panel-heading
dan panel-title
tetapi kita akan menggunakan panel-body
dan panel-footer
. Panel
DIV akan digunakan sebagai wadah utama untuk klien ruang chat.
Markup yang mengimplementasikan apa yang saya dijelaskan di atas, adalah sebagai berikut:
1 |
<div class="container"> |
2 |
<h1>Firebase Chat Application</h1> |
3 |
|
4 |
<div class="panel panel-default"> |
5 |
<div class="panel-body"></div> |
6 |
<div class="panel-footer"></div> |
7 |
</div>
|
8 |
</div>
|
Saat ini, kami tidak akan bekerja dengan panel-body
. Namun, kita perlu menggunakan bagian ini kemudian dalam tutorial untuk mempopulasikan pesan dari lokasi data kami.
Sekarang kami akan berfokus pada panel footer div. Panel footer akan berisi sebuah field input, tombol submit, dan tombol reset. Kami akan memberikan input field atribut id comments
dan tombol submit id atribut dari submit-btn
. Keduanya atribut id ini sangat penting dan akan dibutuhkan dalam tutorial nanti. Jangan ragu untuk mengubah atribut id untuk elemen form.
Markup yang mengimplementasikan apa yang saya dijelaskan di atas, adalah sebagai berikut:
1 |
<div class="container"> |
2 |
<h1>Firebase Chat Application</h1> |
3 |
|
4 |
<div class="panel panel-default"> |
5 |
<div class="panel-body"></div> |
6 |
<div class="panel-footer"> |
7 |
|
8 |
<form role="form"> |
9 |
<div class="form-group"> |
10 |
<label for="comments">Please enter your comments here</label> |
11 |
<input class="form-control" id="comments" name="comments"> |
12 |
</div>
|
13 |
|
14 |
<button type="submit" id="submit-btn" name="submit-btn" |
15 |
class="btn btn-primary">Send Comments</button> |
16 |
|
17 |
<button type="reset" class="btn btn-default">Clear Comments</button> |
18 |
</form>
|
19 |
|
20 |
</div>
|
21 |
</div>
|
22 |
</div>
|
Sekarang mari kita menerapkan JavaScript yang akan memungkinkan kita untuk mengirim pesan ke lokasi data Firebase kami.
JavaScript
Pertama kita perlu menambahkan tag script
langsung di atas penutup body
tag, dalam HTML file. Dalam tag script, kita perlu membuat referensi ke lokasi data Firebase kami. Tanpa referensi ini, kita tidak bisa menulis data ke lokasi data kami. Ini dapat dicapai oleh initializing Firebase konstruktor dan melewati kami data lokasi sebagai parameter. Ingat, lokasi data Firebase dibuat saat Anda menyiapkan Firebase (nama host unik).
Kode sumber yang mengimplementasikan apa yang saya dijelaskan di atas, adalah sebagai berikut:
1 |
var fireBaseRef = new Firebase("YOUR FIREBASE DATA URL"); |
Setelah menginisialisasi objek referensi Firebase, kita perlu mengikat event handler klik ke pemilih tombol kirim. Lokasi selektor ini berada dalam jarak panel footer. Juga, kita perlu memastikan bahwa event handler callback berisi return false
sebagai baris terakhir dari kode. Ini akan memastikan bahwa aksi default menyerahkan formulir, tidak terjadi dan mencegah acara menggelegak DOM tree. Namun, dalam beberapa kasus Anda mungkin ingin event bubbling terjadi.
Kedua potongan JavaScript di bawah menerapkan apa digambarkan di atas:
1 |
$("#submit-btn").bind("click", function() { |
2 |
|
3 |
return false; |
4 |
});
|
1 |
$("#submit-btn").bind("click", function(event) { |
2 |
|
3 |
event.preventDefault(); |
4 |
event.stopPropagation(); |
5 |
});
|
Selanjutnya, kita akan mendefinisikan sebuah variabel yang referensi komentar pemilih dan variabel lain yang menghapus spasi putih dari awal dan akhir dari nilai komentar.
Kode sumber yang mengimplementasikan apa yang saya dijelaskan di atas, adalah sebagai berikut:
1 |
$("#submit-btn").bind("click", function() { |
2 |
var comment = $("#comments"); |
3 |
var comment_value = $.trim(comment.val()); |
4 |
|
5 |
return false; |
6 |
});
|
Sekarang kita perlu menentukan metode yang diperlukan untuk benar-benar menulis tesis komentar ke lokasi data kami.
Menulis Data ke Firebase
API firebase yang menawarkan beberapa metode untuk menulis data ke lokasi data. Namun, dalam tutorial hari ini kita akan fokus pada menggunakan method set()
dan push()
. Mari kita tinjau apa masing-masing metode memungkinkan kita untuk melakukan.
-
set()
method akan menulis data ke lokasi data, serta menimpa data apapun yang saat ini disimpan di data lokasi. - Metode
push()
yang akan menulis data ke lokasi data dengan secara otomatis menghasilkan lokasi anak baru dengan nama unik. Selain itu, nama unik ini akan diawali dengan sebuah time stamp. Ini akan memungkinkan semua anak lokasi akan diurutkan secara kronologis.
Setelah meninjau metode set()
dan push()
; Saya rasa cukup jelas bahwa kita perlu untuk memanfaatkan metode push()
di aplikasi kita. Jika tidak, kami terus-menerus akan menimpa Komentar terbaru di lokasi data kami dan itu akan menjadi tidak menyenangkan.
Untuk melakukan ini, mari kita melompat kembali ke JavaScript kami yang sebelumnya ditambahkan ke halaman kami. Kita sekarang perlu untuk mendorong nilai komentar ke lokasi data kami. Sekarang perlu diingat bahwa ada push
metode berbeda yang memungkinkan kita untuk push data dalam berbagai format, seperti objek, array, string, nomor, boolean, atau null. Kami hanya akan menggunakan objek yang memiliki nilai kunci sepasang komentar dan nilai komentar. Selain itu, kami akan melampirkan callback opsional untuk api setelah metode push
telah selesai. Callback akan mengembalikan sebuah objek kesalahan pada kegagalan dan keberhasilan, nilai null.
Kode sumber yang mengimplementasikan apa yang saya dijelaskan di atas, adalah sebagai berikut:
1 |
$("#submit-btn").bind("click", function() { |
2 |
var comment = $("#comments"); |
3 |
var commentValue = $.trim(comment.val()); |
4 |
|
5 |
fireBaseRef.push({comment: commentValue}, function(error) { |
6 |
if (error !== null) { |
7 |
alert('Unable to push comments to Firebase!'); |
8 |
}
|
9 |
});
|
10 |
|
11 |
return false; |
12 |
});
|
Sekarang mari kita menambahkan sesuatu untuk memastikan bahwa ruang chat pengguna tidak dapat menulis pesan kosong ke lokasi data kami. Ini dapat dengan mudah dicapai dengan menambahkan sederhana pernyataan if else
yang memeriksa panjang nilai komentar.
Kode sumber yang mengimplementasikan apa yang saya dijelaskan di atas, adalah sebagai berikut:
1 |
$("#submit-btn").bind("click", function() { |
2 |
var comment = $("#comments"); |
3 |
var commentValue = $.trim(comment.val()); |
4 |
|
5 |
if (commentValue.length === 0) { |
6 |
alert('Comments are required to continue!'); |
7 |
} else { |
8 |
_fireBaseRef.push({comment: commentValue}, function(error) { |
9 |
if (error !== null) { |
10 |
alert('Unable to push comments to Firebase!'); |
11 |
}
|
12 |
});
|
13 |
|
14 |
comment.val(""); |
15 |
}
|
16 |
|
17 |
return false; |
18 |
});
|
Hebat, kami berhasil menyelesaikan bagian aplikasi kami yang memungkinkan pengguna untuk menulis data ke lokasi data kami. Namun, kami tidak memiliki fungsi yang menyediakan pengalaman obrolan langsung kepada pengguna. Jenis pengalaman ini akan membutuhkan kemampuan untuk membaca data dari lokasi anak, di dalam lokasi data.
Membaca Data dari Firebase
Seperti yang telah disebutkan sebelumnya, sebagian besar aplikasi gaya ruang obrolan membaca data dari server dan kemudian mengisi bagian antarmuka. Kami perlu melakukan hal yang sama dalam aplikasi kami, dengan memanfaatkan API Firebase.
API firebase yang menawarkan beberapa metode untuk membaca data dari data lokasi. Dalam todays tutorial, kita akan fokus pada menggunakan metode on()
.
Metode on()
memiliki beberapa argumen yang layak, tapi kita hanya akan menutupi dua argumen: eventType
dan callback
. Mari kita tinjau kedua.
Memilih eventType
Argumen "eventType
" memiliki beberapa pilihan. Mari kita lihat masing-masing sehingga kita dapat menentukan yang akan memenuhi kebutuhan kita.
- "
value
" - akan ditriger sekali, dan membaca semua komentar, dan setiap kali perubahan komentar itu akan menjadi trigger lagi, serta membaca semua komentar. - "
child_added
" - akan ditriger setelah untuk setiap komentar, serta setiap kali komentar baru ditambahkan. - "
child_removed
" - akan ditrigger setiap komentar dihapus. - "
child_changed
" - akan diditrigger setiap komentar berubah. - "
child_moved
" - akan ditrigger saat order komentar berubah.
Setelah melihat dari atas opsi di atas, tampaknya cukup jelas bahwa kita harus menggunakan "child_added
" sebagai kami "eventType
". Jenis ini bahkan akan dipicu setelah untuk setiap komentar di lokasi data kami, serta setiap kali komentar baru ditambahkan. Selain itu, ketika komentar baru ditambahkan itu tidak akan kembali seluruh rangkaian komentar di lokasi tersebut, tetapi menambahkan hanya child terakhir. Ini adalah persis apa yang kita inginkan! Ada tidak perlu untuk kembali seluruh set komentar, ketika komentar baru ditambahkan.
Menganalisis callback
"callback
" untuk metode on()
menyediakan item yang mengacu pada Firebase sebagai sebuah "snapshot data" yang memiliki beberapa fungsi anggota, fokus hari ini adalah name()
dan val()
.
Fungsi anggota name()
menyediakan kami dengan nama unik "snapshot dari data". Jika Anda ingat sebelumnya, kami menggunakan fungsi push()
untuk menulis komentar baru ke lokasi data kami. Ketika push()
dipanggil, itu menghasilkan lokasi child baru dengan menggunakan nama yang unik dan itu adalah nama yang akan dikembalikan melalui fungsi callback member, name()
.
Fungsi anggota val()
menyediakan kami dengan representasi objek JavaScript "snapshot dari data" dan snapshot ini, kita akan mampu mengambil komentar dari lokasi data kami. Namun, kita perlu mundur sejenak.
Sebelumnya dalam tutorial ini kami menerapkan JavaScript yang diperlukan untuk mendorong komentar ke lokasi Firebase kami dan kami melakukan ini dengan mendorong objek dengan pasangan nilai kunci. Dalam hal ini, kuncinya adalah 'comment
' dan nilainya adalah input yang dimasukkan oleh pengguna. Oleh karena itu, jika kita ingin mengekstrak komentar dari kami "snapshot dari data" kita perlu untuk mengenali jenis data yang benar. Dalam kasus ini kita berhadapan dengan suatu benda, sehingga Anda dapat menggunakan notasi titik atau braket notasi untuk mengakses properti yang ditetapkan.
Kedua potongan JavaScript yang di bawah ini, menerapkan apa digambarkan di atas:
1 |
fireBaseRef.on('child_added', function(snapshot) { |
2 |
var uniqName = snapshot.name(); |
3 |
var comment = snapshot.val().comment; |
4 |
});
|
1 |
fireBaseRef.on('child_added', function(snapshot) { |
2 |
var uniqName = snapshot.name(); |
3 |
var comment = snapshot.val()["comment"]; |
4 |
});
|
Rendering Komentar
Selanjutnya Mari kita membuat sederhana, namun bersih cara untuk menampilkan setiap komentar. Ini dapat dengan mudah dicapai dengan membungkus setiap komentar dalam div
dan pelabelan setiap komentar dengan nama unik. Biasanya komentar dilabeli dengan nama pengguna yang menulis komentar itu, dalam kasus kami, ini adalah klien anonim ruang chat.
Kode sumber yang mengimplementasikan apa yang saya dijelaskan di atas, adalah sebagai berikut:
1 |
var commentsContainer = $('#comments-container'); |
2 |
|
3 |
$('<div/>', {class: 'comment-container'}) |
4 |
.html('<span class="label label-info">Comment ' + uniqName + '</span>' + comment); |
Selanjutnya kita harus menambahkan setiap komentar untuk komentar wadah dan mendapatkan posisi vertikal saat ini komentar scrollbar wadah dan gulir ke lokasi terbaru. Ini akan memastikan bahwa setiap kali komentar dipush ke Firebase, semua pengguna yang menggunakan aplikasi chatting akan melihat komentar terbaru. Semua ini dilakukan dalam callback.
Seharusnya terlihat seperti ini:
1 |
var commentsContainer = $('#comments-container'); |
2 |
|
3 |
$('<div/>', {class: 'comment-container'}) |
4 |
.html('<span class="label label-info">Comment ' + uniqName + '</span>' + comment) |
5 |
.appendTo(commentsContainer); |
6 |
|
7 |
commentsContainer.scrollTop(commentsContainer.prop('scrollHeight')); |
Sekarang mari kita menerapkan beberapa style CSS sederhana ke DIV yang melilit setiap blok komentar. Ini akan membuat tampilan sedikit lebih menarik dan user friendly. Style ini harus ditambahkan dalam tag style, yang terletak di head
HTML.
Kode sumber yang mengimplementasikan apa yang saya dijelaskan di atas, adalah sebagai berikut:
1 |
.container { |
2 |
max-width: 700px; |
3 |
}
|
4 |
|
5 |
#comments-container { |
6 |
border: 1px solid #d0d0d0; |
7 |
height: 400px; |
8 |
overflow-y: scroll; |
9 |
}
|
10 |
|
11 |
.comment-container { |
12 |
padding: 10px; |
13 |
margin:6px; |
14 |
background: #f5f5f5; |
15 |
font-size: 13px; |
16 |
-moz-border-radius: 5px; |
17 |
-webkit-border-radius: 5px; |
18 |
border-radius: 5px; |
19 |
}
|
20 |
|
21 |
.comment-container .label { |
22 |
margin-right: 20px; |
23 |
}
|
24 |
|
25 |
.comment-container:last-of-type { |
26 |
border-bottom: none; |
27 |
}
|
Menjalankan Aplikasi
Sekarang saatnya untuk menjalankan aplikasi kami. Mari kita mulai dengan membuka dua contoh browser favorit kami yang modern dan menempatkannya secara berdampingan di desktop kami. Selanjutnya, kita akan menelusuri ke lokasi file dari file kami yang kami buat, di kedua browser. Uji coba dengan menulis beberapa komentar dan nikmati keajaiban Firebase.
Hal ini luar biasa bahwa hanya beberapa baris kode dapat menghasilkan sebuah aplikasi yang kuat. Jangan ragu untuk mengedit potongan ini dengan cara apapun untuk menghasilkan hasil yang diinginkan.
Memeriksa demo online untuk melihatnya dalam tindakan. Berikut adalah kode sumber lengkap untuk seluruh ruang chat aplikasi:
1 |
<!DOCTYPE html>
|
2 |
<html>
|
3 |
<head>
|
4 |
<meta charset="utf-8"> |
5 |
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
6 |
<title>Firebase Chat Application</title> |
7 |
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css"> |
8 |
|
9 |
<style>
|
10 |
.container { |
11 |
max-width: 700px; |
12 |
}
|
13 |
|
14 |
#comments-container { |
15 |
border: 1px solid #d0d0d0; |
16 |
height: 400px; |
17 |
overflow-y: scroll; |
18 |
}
|
19 |
|
20 |
.comment-container { |
21 |
padding: 10px; |
22 |
margin:6px; |
23 |
background: #f5f5f5; |
24 |
font-size: 13px; |
25 |
-moz-border-radius: 5px; |
26 |
-webkit-border-radius: 5px; |
27 |
border-radius: 5px; |
28 |
}
|
29 |
|
30 |
.comment-container .label { |
31 |
margin-right: 20px; |
32 |
}
|
33 |
|
34 |
.comment-container:last-of-type { |
35 |
border-bottom: none; |
36 |
}
|
37 |
</style>
|
38 |
</head>
|
39 |
<body>
|
40 |
|
41 |
<div class="container"> |
42 |
|
43 |
<h1>Firebase Chat Application</h1> |
44 |
|
45 |
<div class="panel panel-default"> |
46 |
|
47 |
<div class="panel-body"> |
48 |
<div id="comments-container"></div> |
49 |
</div>
|
50 |
|
51 |
<div class="panel-footer"> |
52 |
|
53 |
<form role="form"> |
54 |
<div class="form-group"> |
55 |
<label for="comments">Please enter your comments here</label> |
56 |
<input class="form-control" id="comments" name="comments"> |
57 |
</div>
|
58 |
|
59 |
<button type="submit" id="submit-btn" name="submit-btn" |
60 |
class="btn btn-success">Send Comments</button> |
61 |
|
62 |
<button type="reset" class="btn btn-danger">Clear Comments</button> |
63 |
</form>
|
64 |
|
65 |
</div>
|
66 |
</div>
|
67 |
</div>
|
68 |
|
69 |
<script src="http://cdn.firebase.com/js/client/1.0.6/firebase.js"></script> |
70 |
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> |
71 |
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script> |
72 |
<script>
|
73 |
|
74 |
var fireBaseRef = new Firebase("YOUR FIREBASE DATA URL"); |
75 |
|
76 |
$("#submit-btn").bind("click", function() { |
77 |
var comment = $("#comments"); |
78 |
var commentValue = $.trim(comment.val()); |
79 |
|
80 |
if (commentValue.length === 0) { |
81 |
alert('Comments are required to continue!'); |
82 |
} else { |
83 |
fireBaseRef.push({comment: commentValue}, function(error) { |
84 |
if (error !== null) { |
85 |
alert('Unable to push comments to Firebase!'); |
86 |
}
|
87 |
});
|
88 |
|
89 |
comment.val(""); |
90 |
}
|
91 |
|
92 |
return false; |
93 |
});
|
94 |
|
95 |
fireBaseRef.on('child_added', function(snapshot) { |
96 |
var uniqName = snapshot.name(); |
97 |
var comment = snapshot.val().comment; |
98 |
var commentsContainer = $('#comments-container'); |
99 |
|
100 |
$('<div/>', {class: 'comment-container'}) |
101 |
.html('<span class="label label-default">Comment ' |
102 |
+ uniqName + '</span>' + comment).appendTo(commentsContainer); |
103 |
|
104 |
commentsContainer.scrollTop(commentsContainer.prop('scrollHeight')); |
105 |
});
|
106 |
|
107 |
</script>
|
108 |
</body>
|
109 |
</html>
|
Dalam Ringkasan
Dalam tutorial hari ini, kami bekerja di sepanjang proses penerapan aplikasi ruang obrolan sederhana dengan memanfaatkan API JavaScript Firebase. Dengan demikian, kami dapat merasakan kekuatan Firebase dan mendapatkan apresiasi atas kenyamanannya. Di bawah ini adalah beberapa item utama yang kami klik hari ini:
- Referensi Firebase data lokasi oleh initializing Firebase konstruktor.
- Menulis data ke Firebase dengan menggunakan metode
push
. - Membaca data dari Firebase dengan menggunakan metode
on
dengan jenis acara 'child_added
'.
Saya harap tutorial ini telah memberi Anda titik awal yang Anda butuhkan untuk mengambil lebih jauh dengan Firebase. Jika Anda memiliki pertanyaan atau komentar, jangan ragu untuk meninggalkan mereka di bawah ini. Thanks lagi untuk waktu Anda dan terus mengeksplorasi kemungkinan tak terbatas Firebase api.