Skip to content

Latest commit

 

History

History
85 lines (63 loc) · 2.62 KB

File metadata and controls

85 lines (63 loc) · 2.62 KB

Hướng dẫn cấu hình FCM HTTP v1 API

Bước 1: Tạo Service Account từ Firebase Console

  1. Truy cập Firebase Console
  2. Chọn project locketclone-f84b2
  3. Click vào ⚙️ Settings (biểu tượng bánh răng) → Project settings
  4. Chọn tab Service accounts
  5. Click Generate new private key
  6. Xác nhận và download file JSON

Bước 2: Đặt file Service Account vào project

  1. Đổi tên file vừa download thành service-account.json
  2. Copy file vào thư mục:
    app/src/main/assets/service-account.json
    

Bước 3: Verify cấu trúc file

File service-account.json sẽ có dạng:

{
  "type": "service_account",
  "project_id": "locketclone-f84b2",
  "private_key_id": "...",
  "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
  "client_email": "firebase-adminsdk-xxxxx@locketclone-f84b2.iam.gserviceaccount.com",
  "client_id": "...",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  ...
}

⚠️ Lưu ý bảo mật QUAN TRỌNG

  • KHÔNG commit file service-account.json lên GitHub
  • Thêm vào .gitignore:
    app/src/main/assets/service-account.json
    
  • Cho production app, nên sử dụng backend server để gửi notifications

Bước 4: Sync Gradle và Build

  1. Mở Android Studio
  2. Click Sync Now để sync Gradle
  3. Build và run app

Test sau khi cấu hình

  1. Build và run app trên 2 thiết bị (hoặc emulator)
  2. Login 2 tài khoản khác nhau và kết bạn
  3. Từ thiết bị A, gửi tin nhắn cho thiết bị B
  4. Thiết bị B sẽ nhận được push notification

Troubleshooting

Không nhận được notification?

  1. Kiểm tra file service-account.json đã đặt đúng vị trí
  2. Kiểm tra FCM token đã được lưu vào Firestore (users/{userId}/fcmTokens)
  3. Kiểm tra Logcat với tag "DirectNotificationSender"
  4. Đảm bảo thiết bị có kết nối internet

Lỗi "Failed to get access token"

  • File service-account.json không tồn tại hoặc sai vị trí
  • File JSON bị corrupt hoặc không đúng format

Lỗi 401 Unauthorized

  • Access token expired (sẽ tự động refresh)
  • Service account không có quyền Firebase Cloud Messaging

Lỗi 403 Forbidden

  • Cần enable Firebase Cloud Messaging API:
    1. Vào Google Cloud Console
    2. Chọn project locketclone-f84b2
    3. APIs & Services → Enable APIs
    4. Search "Firebase Cloud Messaging API" và Enable