🇫🇷 Français | 🇬🇧 English
- Android Studio Hedgehog (2023.1.1) or newer
- JDK 17
- A Firebase project (Blaze plan — free up to 2M invocations/month)
- Node.js 18+ (to deploy the Cloud Function)
git clone https://github.com/DevBot667/SecureChat.git
cd SecureChat- Go to Firebase Console
- Create a project (disable Google Analytics if desired)
- Add an Android app:
- Package name:
com.securechat - Download
google-services.json
- Package name:
- Copy
google-services.jsonintoapp/ - Firebase Console → Authentication → Sign-in method → Anonymous → Enable
- Firebase Console → Realtime Database → Create (closest region)
- Rules tab → paste the content of
firebase-rules.json
- Firebase Console → Storage → Enable
- Rules tab → paste the content of
storage.rules - Verify the bucket is in the correct region
# Install Firebase CLI
npm install -g firebase-tools
# Login
firebase login
# From the root of the project
cd functions
npm install
cd ..
firebase deploy --only functionsThe Cloud Function triggers automatically on each new message and sends a push notification to recipients who have opted in.
⚠️ google-services.jsonis in.gitignore— it will never be pushed to GitHub. The fileapp/google-services.json.templateshows the expected structure.
./gradlew assembleDebugOr open in Android Studio → Run on an emulator or physical device.
| Dependency | Version | Usage |
|---|---|---|
| Kotlin | 2.1.0 | Language |
| AndroidX Core / AppCompat / Material | Latest | UI Material Design |
| AndroidX Navigation | 2.8.9 | Single-activity navigation |
| AndroidX Lifecycle | 2.8.7 | ViewModels, LiveData, coroutines |
| Room + KSP | 2.7.1 | Local SQLite database |
| SQLCipher | 4.5.4 | AES-256 encryption for Room DB |
| Firebase BOM | 34.10.0 | Anonymous auth + Realtime Database + Cloud Messaging + Storage |
| Firebase Storage | (via BOM) | Encrypted E2E file storage |
| firebase-functions (Node.js) | 7.0.0 | Cloud Function trigger (push notifications) |
| firebase-admin (Node.js) | 13.6.0 | Admin SDK for RTDB + FCM server-side |
| AndroidX Security Crypto | 1.1.0-alpha06 | Secure storage (EncryptedSharedPreferences) |
| AndroidX Biometric | 1.1.0 | BiometricPrompt (fingerprint, face) |
| Kotlinx Coroutines | 1.9.0 | Async + Flow |
| ZXing Android Embedded | 4.3.0 | Generation and scanning of QR codes |
| BouncyCastle | 1.80 | Ed25519 (signatures), ML-KEM-1024 (post-quantum PQXDH) |