---
title: "Connecter Firebase Crashlytics"
description: "Crashs remontés par Crashlytics (connecteur replié)."
lang: fr
canonical: "https://www.stathall.com/docs/connecteur-firebase-crashlytics/"
updated: "2026-09-16"
---

# Connecter Firebase Crashlytics


StatHall lit en lecture seule les **issues de crashs** d'un projet Firebase Crashlytics via l'**export BigQuery**. L'authentification se fait par **service account JSON** (GCP) avec des rôles BigQuery read-only — pas de login/mot de passe.

> Aucune écriture côté Firebase. Aucune notification sortante. Le service account sert uniquement à requêter BigQuery en lecture.

---

## Avant de commencer

| Pré-requis | Détail |
|---|---|
| Projet Firebase | Crashlytics activé sur au moins une app (Android et/ou iOS) |
| Projet GCP | Même projet que Firebase (ou projet "jumeau" configuré côté Firebase) |
| Rôle minimum | `roles/bigquery.dataViewer` + `roles/bigquery.jobUser` + `roles/firebase.viewer` |
| Infos à récupérer | **Project ID** Firebase + fichier JSON du service account |

---

## Étape 1 — Activer l'export BigQuery côté Firebase

1. Ouvre la console Firebase → sélectionne le projet.
2. Menu latéral → **Crashlytics** → onglet **Integrations**.
3. Clique **Link** à côté de **BigQuery**.
4. Coche les apps (Android + iOS) à exporter. Confirme.
5. Firebase crée un dataset `firebase_crashlytics` dans ton projet GCP, avec une table par app/plateforme :
   - `firebase_crashlytics.com_example_app_ANDROID`
   - `firebase_crashlytics.com_example_app_IOS`

> ⏱️ Délai d'export : les premières rows apparaissent ~10 min après activation, puis en streaming continu.

> 💸 Coût : l'export BigQuery est **gratuit** (Firebase prend en charge le coût d'ingestion). Seules les requêtes StatHall sur BQ sont facturées — quelques cents/mois en pratique.

---

## Étape 2 — Créer un service account GCP

1. Console GCP → **IAM & Admin → Service Accounts** → **Create service account**.
2. Nom : `stathall-crashlytics-reader`. Description : "Lecture read-only des data Crashlytics pour StatHall".
3. **Grant this service account access** : ajoute ces 3 rôles :
   - `BigQuery Data Viewer` (`roles/bigquery.dataViewer`)
   - `BigQuery Job User` (`roles/bigquery.jobUser`)
   - `Firebase Viewer` (`roles/firebase.viewer`)
4. Clique **Done** (pas besoin de `User role access`).

---

## Étape 3 — Télécharger la clé JSON

1. Ouvre le service account créé → onglet **Keys** → **Add key → Create new key**.
2. Format **JSON** → **Create**. Le fichier `stathall-crashlytics-reader-XXXXX.json` est téléchargé.
3. **Conserve-le en sécurité** — StatHall le chiffre en base (Fernet) dès que tu l'enregistres ; tu ne pourras pas le re-télécharger.

---

## Étape 4 — Saisir dans StatHall

Dans l'onglet **Sources** de la config d'une app :

1. **Project ID Firebase** : le project id (pas le number). Visible en haut de la console Firebase ou dans l'URL `https://console.firebase.google.com/project/<ton-project-id>`.
2. **Service account JSON** : bouton **Choisir un fichier** → sélectionne le `.json` téléchargé à l'étape 3.
3. Clique **Tester la connexion**. StatHall fait un `GET https://firebase.googleapis.com/v1beta1/projects/<ton-project-id>` avec le JWT signé par le SA pour valider l'accès.
4. **Enregistrer**.

Le sync automatique démarre dans les 15 min (cadence `sync-firebase-crashes` : `*/15 min`).

---

## Vérification

Après 15-30 min, vérifie :

| Où | Quoi |
|---|---|
| StatHall → **Crashs** | Les issues Crashlytics apparaissent avec un badge `firebase` |
| StatHall → **Sources → Firebase Crashlytics** | **Dernier test : OK** |
| Beat logs | `sync-firebase-crashes` exécuté sans erreur |

---

## Dépannage

| Symptôme | Cause probable | Fix |
|---|---|---|
| `403 — le service account n'a pas accès` | Rôles manquants | Ajoute `roles/bigquery.dataViewer` + `roles/bigquery.jobUser` + `roles/firebase.viewer` |
| `404 — projet introuvable` | Mauvais project ID (number au lieu du slug) | Récupère le slug depuis la console Firebase, pas le numéro |
| Aucune issue ingérée après 30 min | BQ export pas encore activé ou pas de crashs récents | Vérifie l'étape 1 — la carte BigQuery doit afficher "Linked" |
| `Access Denied: BigQuery BigQuery: Permission denied on resource project` | Le SA vient d'un autre projet GCP | Crée le SA dans le MÊME projet que Firebase |

---

## Sécurité

Le fichier JSON du service account contient une clé privée RSA : **traite-le comme un secret**. StatHall le chiffre en base (Fernet) dès l'enregistrement ; l'export `/account/export` RGPD ne le renvoie jamais en clair. Pour révoquer, supprime la clé depuis la console GCP → IAM → Service Accounts → Keys.
