Thi trực tuyến (Kahoot)
Menu Công cụ → Thi Trực Tuyến (Kahoot). Tổ chức thi/ôn tập trực tiếp trên lớp: cô soạn câu hỏi, chiếu mã phòng, học sinh dùng điện thoại quét mã và trả lời trực tiếp, điểm cập nhật ngay trên màn hình cô.
Vì sao cần cài Firebase riêng?
Tính năng này chạy trên Firebase Realtime Database do chính thầy/cô tự tạo (miễn phí), không qua server chung của ASB. Điều này giúp việc thi trực tuyến của lớp cô không ảnh hưởng tốc độ của các trường/lớp khác đang dùng ASB cùng lúc — dữ liệu thi của lớp cô chỉ nằm trong Firebase của riêng cô.
Chỉ cần làm phần cài đặt này một lần duy nhất, sau đó dùng lại mãi mãi cho mọi lần tổ chức thi.
Mẹo — nhờ "Gemini in Firebase" làm giúp Bước 1-2
Sau khi mở console.firebase.google.com, ở góc phải màn hình có khung chat "Gemini in Firebase". Dán đoạn dưới đây vào đó để được dẫn tiếp bằng chat (Gemini chỉ hướng dẫn/giải thích, các nút bấm vẫn tự làm tay):
Hãy giúp tôi: 1) đăng ký 1 Web app mới trong project này và cho tôi xem đoạn firebaseConfig, 2) hướng dẫn tôi bật Realtime Database ở vùng Singapore (asia-southeast1), chọn Start in test mode.Riêng Bước 3 (Rules) và Bước 4 (dán cấu hình vào app) thì làm theo hướng dẫn bên dưới — Gemini không biết đoạn Rules riêng của tính năng thi trực tuyến này.
Bước 1 — Tạo project Firebase (chỉ làm 1 lần)
- Mở console.firebase.google.com (đăng nhập bằng Gmail bất kỳ).
- Bấm "Add project" / "Tạo dự án".
- Đặt tên project tuỳ ý, ví dụ
lop-hoc-cua-toi. - Nếu được hỏi về Google Analytics — bỏ qua, không cần bật.
- Bấm "Create project", chờ vài giây rồi bấm "Continue".
Bước 2 — Bật Realtime Database
- Ở menu bên trái, chọn Build → Realtime Database.
- Bấm "Create Database".
- Bước "Database options": mục "Realtime Database location" chọn Singapore (asia-southeast1) — gần Việt Nam nhất nên tải nhanh hơn. Bấm "Next".
- Bước "Security rules": chọn "Start in test mode".
- Bấm "Enable".
Bước 3 — Dán Security Rules
Vẫn trong màn Realtime Database, chuyển sang tab "Rules" ở trên cùng:
- Xoá hết nội dung mặc định.
- Dán đúng đoạn sau:
{
"rules": {
"rooms": {
"$code": {
".read": true,
".write": true
}
}
}
}- Bấm "Publish".
Vì sao Rules lại mở?
Đoạn Rules trên chỉ cho phép đọc/ghi trong nhánh rooms — đúng phạm vi tính năng thi cần dùng, không đụng tới phần khác của project. Ai biết đúng mã phòng (6 ký tự ngẫu nhiên, đổi mỗi lần tạo phòng mới) mới đọc/ghi được phòng đó. Dữ liệu thi chỉ là câu hỏi và điểm số tạm thời, không phải thông tin nhạy cảm, nên mức bảo mật này phù hợp để giữ việc cài đặt đơn giản cho thầy cô.
Bước 4 — Tạo Web app và lấy cấu hình
- Bấm biểu tượng bánh răng ⚙️ cạnh "Project Overview" → "Project settings".
- Cuộn xuống mục "Your apps":
- Nếu báo "There are no apps in your project": bấm biểu tượng
</>(Web) ở hàng icon → đặt tên app bất kỳ (vd:app-thi) → "Register app" → "Continue to console" (không cần cài npm package gì cả, bỏ qua nếu có hỏi). - Nếu đã có app rồi: bấm vào app đó trong danh sách "Web apps" bên trái.
- Nếu báo "There are no apps in your project": bấm biểu tượng
- Ở khung "SDK setup and configuration", có 3 lựa chọn npm / CDN / Config — bấm chọn "Config" (không chọn "npm", vì npm hiện thêm các dòng
importkhông cần thiết, dễ copy nhầm). - Firebase hiện ra đúng khối:js
const firebaseConfig = { apiKey: "...", authDomain: "...", databaseURL: "...", projectId: "...", appId: "..." }; - Bôi đen copy nguyên khối này (kể cả dòng
const firebaseConfig =cũng được, app tự lược bỏ) — hoặc bấm icon 📋 sao chép nếu Firebase có sẵn. - Quay lại app Quản lý lớp → Công cụ → Thi Trực Tuyến (Kahoot) → dán vào ô cấu hình → bấm "Lưu & kiểm tra cấu hình".
Lỡ copy nhầm tab "npm" có cả dòng import?
Không sao — app tự tìm đúng khối firebaseConfig = {...} bên trong đoạn dán, kể cả khi dính thêm các dòng import { initializeApp } from "firebase/app"; phía trên.
App sẽ tự kết nối thử tới Firebase. Nếu báo lỗi:
| Thông báo | Nguyên nhân | Cách sửa |
|---|---|---|
| Thiếu trường: databaseURL, ... | Copy thiếu 1 phần cấu hình | Quay lại Bước 4, copy lại nguyên khối |
| databaseURL không đúng định dạng | Chưa bật Realtime Database | Làm lại Bước 2 |
| Kết nối được nhưng bị từ chối ghi dữ liệu | Rules chưa Publish hoặc dán sai | Làm lại Bước 3, nhớ bấm Publish |
Soạn câu hỏi và tạo phòng thi
Sau khi cấu hình xong (chỉ hỏi 1 lần):
- Nhập tiêu đề phòng thi và số giây cho mỗi câu.
- Với mỗi câu hỏi: nhập nội dung, 4 lựa chọn, bấm vào chữ cái để chọn đáp án đúng, và đặt điểm cho câu đó (mặc định 10 điểm — có thể để câu khó điểm cao hơn câu dễ).
- Bấm "+ Thêm câu hỏi" để thêm câu, hoặc "Xóa" để bỏ câu không cần.
- Bấm "Tạo phòng thi".
Học sinh tham gia
Màn hình Phòng chờ hiện mã phòng 6 ký tự và mã QR:
- Cách 1: học sinh quét mã QR bằng camera điện thoại.
- Cách 2: gửi link tham gia cho học sinh (bấm giữ/chia sẻ ảnh QR, hoặc đọc mã phòng để học sinh tự vào trang
thi.htmlvà nhập).
Học sinh không cần tài khoản — chỉ chọn 1 nhân vật (emoji) và nhập biệt danh là vào phòng ngay, tên hiện trực tiếp trên màn hình cô.
Điều khiển khi thi
- ▶ Bắt đầu — chuyển sang câu hỏi đầu tiên, học sinh thấy câu hỏi ngay trên điện thoại.
- ⏭ Câu tiếp theo — chuyển câu; hết câu cuối tự động kết thúc phòng.
- ⏹ Kết thúc sớm — dừng thi giữa chừng khi cần.
- Tab BXH (bảng xếp hạng) xem thứ hạng trực tiếp bất cứ lúc nào trong buổi thi.
Điểm được máy của cô tự tính ngay khi học sinh gửi câu trả lời (đúng = trọn điểm câu đó, sai = 0) — học sinh không thể tự sửa điểm của mình.
Nhập điểm vào Bảng điểm
Sau khi bấm Kết thúc, ở tab Kết quả:
- Bấm "Nhập điểm vào Bảng điểm".
- Với mỗi học sinh trong phòng thi, chọn đúng tên học sinh tương ứng trong lớp (app tự đoán theo tên trùng khớp, cô kiểm tra/sửa lại nếu cần).
- Chọn Học kỳ 1 hoặc Học kỳ 2.
- Bấm "Xác nhận nhập điểm".
Điểm sẽ xuất hiện như một bài kiểm tra mới trong Bảng điểm, mục "Bài kiểm tra" — tách riêng khỏi cột TX/Giữa kỳ/Cuối kỳ chính thức.
Thầy cô hay hỏi
Học sinh có cần cài app hay đăng nhập gì không? Không. Chỉ cần trình duyệt trên điện thoại, quét QR là vào thẳng phòng thi.
Nhiều lớp/nhiều trường cùng dùng tính năng này có bị chậm không? Không. Mỗi thầy cô dùng Firebase riêng của mình, các phòng thi không dùng chung hạ tầng với nhau hay với server ASB.
Đổi cấu hình Firebase khác được không? Được — trong màn soạn câu hỏi, bấm "Đổi cấu hình Firebase" để xoá cấu hình cũ và nhập lại từ đầu.
Trót đóng cửa sổ giữa buổi thi thì sao? Mở lại Công cụ → Thi Trực Tuyến, phòng thi vẫn còn trên Firebase, nhưng app hiện tại chưa hỗ trợ quay lại đúng phòng đang chạy dở — nên tránh đóng modal giữa buổi thi.
Dữ liệu thi lưu trong bao lâu? Phòng thi ở lại trong Firebase của thầy/cô cho tới khi bị xoá thủ công (app không tự xoá) — không ảnh hưởng gì nếu để đó, vì mỗi phòng mới có mã riêng.

