Récupérer la configuration publique
Un seul GET renvoie la configuration du projet Firebase. L'apiKey est publique par conception : elle identifie le projet, pas l'appelant. Mets-la en cache ; un rafraîchissement hebdomadaire suffit.
Référence d'intégration tierce
Le compte TigerSystem relie chaque appli et chaque appareil. Ton appli, ton appareil ou Home Assistant y accède nativement via Firebase : connexion avec les identifiants de l'utilisateur, lecture de ses bobines et de ses racks dans Firestore, écriture des poids.
$ GET https://tigertag-cdn.web.app/__/firebase/init.json
POST https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key={apiKey}
{ "email": "user@example.com", "password": "…", "returnSecureToken": true }Tous les clients suivent les mêmes quatre étapes : récupérer la configuration Firebase publique, se connecter en tant qu'utilisateur, appeler l'API REST de Firestore avec le jeton de l'utilisateur, et garder ce jeton à jour.
Un seul GET renvoie la configuration du projet Firebase. L'apiKey est publique par conception : elle identifie le projet, pas l'appelant. Mets-la en cache ; un rafraîchissement hebdomadaire suffit.
L'e-mail et le mot de passe de l'utilisateur renvoient un UID, un idToken d'une heure et un refreshToken. Google Sign-In exige un navigateur, d'où le mot de passe sans interface.
Envoie l'idToken comme jeton Bearer. Les bobines se trouvent dans users/{uid}/inventory, les racks dans users/{uid}/racks ; les poids sont en grammes nets, les dates en millisecondes Unix.
Chaque client se connecte avec les identifiants de l'utilisateur final. N'embarque jamais le SDK firebase-admin ni aucune clé d'administration dans un client tiers.
Les Firestore Security Rules vérifient chaque requête selon l'utilisateur connecté : le propriétaire lit et écrit ses documents, un ami lit l'inventaire et les racks, le reste est refusé.
Les chemins de documents et les noms de champs restent stables. Renommer ou supprimer un champ exige 3 mois de préavis minimum dans le changelog ; les nouveaux champs s'ajoutent.
Une ébauche de composant personnalisé qui expose un capteur par bobine, avec le poids restant en grammes comme état. Le guide couvre aussi les inventaires des amis, la pagination et le stockage des jetons.

Retrouver une bobine à partir de l'UID RFID scanné (uid, puis twin_uid), calculer le poids net et écrire weight_available et last_update avec un masque de mise à jour. Le guide se termine par un sketch ESP32 complet (WiFi, ArduinoJson).

Un client Python minimal basé sur Pyrebase4 : il se connecte, liste tes bobines et affiche le nombre de bobines de chaque ami. Le guide contient le script entier et un exemple d'exécution.
Non. Chaque client se connecte avec l'e-mail et le mot de passe TigerSystem de l'utilisateur final, et les Firestore Security Rules décident de ce que cet utilisateur peut lire ou écrire. Il n'existe aucune clé d'administration partagée, et le SDK firebase-admin ne doit jamais être utilisé dans un client tiers.
L'apiKey identifie le projet Firebase, pas l'appelant. Sans idToken valide, obtenu en se connectant en tant qu'utilisateur réel, elle ne donne accès à rien ; le contrôle d'accès repose sur l'authentification et sur les Security Rules.
Pas directement : Google Sign-In nécessite une redirection dans un navigateur. Un utilisateur qui n'a jamais utilisé que Google définit d'abord un mot de passe sur son compte TigerSystem, via la procédure de mot de passe oublié de Tiger Studio Manager 2 ou de Tiger NFC Connect, puis se connecte avec son e-mail et son mot de passe.
Au plus toutes les 5 minutes pour un capteur, toutes les 15 minutes pour une vue d'ensemble des racks, et jamais en dessous de 30 secondes. Une balance n'écrit que lorsqu'un poids change. Les lectures de listes doivent passer une limite : 200 pour l'inventaire, 50 pour les racks.
Oui, en lecture seule. Lorsque deux utilisateurs sont amis, chacun possède un document pour l'autre sous users/{uid}/friends, et les règles permettent à un ami de lire l'inventaire et les racks. Chacun des deux peut mettre fin à l'amitié à tout moment, ce qui coupe l'accès immédiatement.
Choisis le guide de ta plateforme et suis-le de la connexion à ta première lecture. Ce qui est documenté est ce qui est déployé.
Démarrer une intégration