Viết server-side logic mà không cần quản lý server
Cloud Functions cho phép bạn chạy code backend theo sự kiện (event-driven) - hoàn hảo cho Vibe Coding.
Use cases thực tế cho congdongvibecode:
-
Trigger khi user mới đăng ký:
- Tự động tạo document trong profiles
- Gửi email chào mừng
- Thêm vào mailing list
-
Trigger khi có job mới:
- Gửi notification push cho users có matching skills
- Post tự động lên Discord/Slack community
-
Scheduled function (CRON):
- Tổng hợp weekly digest mỗi thứ 2
- Dọn dẹp expired sessions
Prompt cho Gemini: "Viết Cloud Function TypeScript:
- Trigger: onCreate trên collection 'jobs'
- Logic: Lấy job.requiredSkills, query profiles có skills match, gửi push notification cho họ
- Sử dụng Firebase Admin SDK và FCM"
Code mẫu:
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
admin.initializeApp();
export const onNewJobPosted = functions.firestore
.document('jobs/{jobId}')
.onCreate(async (snap, context) => {
const job = snap.data();
const requiredSkills = job.requiredSkills || [];
// Query matching profiles
const matchingUsers = await admin.firestore()
.collection('profiles')
.where('skills', 'array-contains-any', requiredSkills)
.get();
// Send notifications
const tokens = matchingUsers.docs
.map(doc => doc.data().fcmToken)
.filter(Boolean);
if (tokens.length > 0) {
await admin.messaging().sendMulticast({
tokens,
notification: {
title: 'Việc làm mới phù hợp với bạn!',
body: `${job.companyName} đang tuyển ${job.title}`
}
});
}
});
Deploy:
firebase deploy --only functions
