Cara Menggunakan Firebase di Fastify

Ardhi Choiruddin
2 min readMar 20, 2023

--

Hallo… pada tutorial kali ini saya akan membahas cara penggunaan Firebase di Fastify. Buat yang masih bingung cara menggunakan Firebase di Fastify bisa lanjut. Kalau yang sudah bisa, mungkin tutorial ini bukan untuk anda. hehe…

Untuk yang masih belum tahu apa itu Fastify, Fastify adalah framework nodejs yang menawarkan performa yang sangat cepat. Menurut artikel ini Fastify menawarkan performa 27% lebih cepat dari Express Js.

Di Fastify, semua tentang Plugin. Apa maksudnya? jadi jika setiap kita install Package, dapat di daftarkan/register di fastify.register() (menjadi plugin) dan dapat di gunakan di semua fungsi yang anda tulis tanpa mendefinisikan per file lagi.

Plugin pada Fastify dapat digunakan untuk berbagai tujuan, seperti manajemen sesi, autentikasi, penanganan permintaan, validasi input, serialisasi JSON, dan masih banyak lagi. Fastify telah menyediakan banyak plugin bawaan yang dapat digunakan untuk menambahkan fitur-fitur tersebut ke dalam aplikasi web Anda. (ChatGPT)

Berikut cara menggunakan Firebase di Fastify.

Di sini saya anggap anda sudah menginstall Fastify.

1. Install fastify-firebase

Pertama-tama install fastify-firebase menggunakan yarn . Saya di sini menggunakan fastify-firebase karena lebih mudah dan itu rekomendasi dari fastify ekosistem juga. Berikut cara penginstallan.

yarn add @now-ims/fastify-firebase

Jika anda menggunakan npm, bisa install dengan cara ini:

npm i @now-ims/fastify-firebase -S

2. Daftarkan fastify-firebase menjadi Plugin

Sekarang buat file app.js, dan tulis code seperti di bawah.


import Fastify from "fastify";
import fastifyFirebase from "@now-ims/fastify-firebase";

import firebaseCert from "./your_app-123.json";

import { getUserHandlers } from "./user";

const server = Fastify()

async function main() {

server.register(fastifyFirebase, {
name: 'client1',
cert: firebaseCert
})

server.get("/users", getUserHandlers)

try{

await server.listen({
port: 9001
})

console.log(`ready on port ${9001}`)

}catch(err){
process.exit(1)
}

}

main()

Saya di sini tidak begitu mementingkan struktur folder dll, saya hanya akan menjelaskan alur tentang penggunaan Firebase di Fastify.

Berikut penjelasannya. firebaseCert di atas adalah firebase certificate yang bisa anda dapatkan di console.google.com (nanti bentuknya json). dan function getUserHandlers di atas adalah function dimana kita nanti akan mengambil data dari firebase.

3. Membuat Fungsi untuk mengambil data di Firebase

Step terakhir, buat file user.js dan buat function getUserHandlers . Berikut contohnya.

export async function getUserHandlers(request, reply){

try{

let lists = []

const listUsersResult = await this.firebase.auth().listUsers(1000)

listUsersResult.users.forEach((userRecord) => {
lists.push(userRecord.toJSON())
})

return reply.code(200).send({
data: lists
})

}catch(err){

return reply.send(err)

}

}

Di usahakan menggunakan named function dan jangan menggunakan arrow function. karena jika menggunakan arrow function, anda tidak akan bisa mengakses firebase dari this .

Sekarang jalankan app.js dan buka http://localhost:9001/users. taraa…

semoga bermanfaat dan terhibur

--

--