Riferimento per integrazioni di terze parti

Collega la tua app a un account TigerSystem

L'account TigerSystem collega ogni app e ogni dispositivo. La tua app, il tuo dispositivo o Home Assistant vi accede in modo nativo tramite Firebase: accesso con le credenziali dell'utente stesso, lettura delle sue bobine e dei suoi scaffali in Firestore, scrittura dei pesi.

GitHub ↗

$ 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 }
Durata di un idToken: rinnovalo prima che scada
1 hDurata di un idToken: rinnovalo prima che scada
Intervallo minimo di polling consigliato
5 minIntervallo minimo di polling consigliato
Preavviso minimo di deprecazione prima che un campo venga rinominato o rimosso
3 mesiPreavviso minimo di deprecazione prima che un campo venga rinominato o rimosso
Licenza di ogni snippet di codice: incollalo nel tuo progetto, senza attribuzione
Apache-2.0Licenza di ogni snippet di codice: incollalo nel tuo progetto, senza attribuzione

Come un client si collega a TigerSystem

Ogni client segue gli stessi quattro passaggi: recuperare la configurazione pubblica di Firebase, accedere come l'utente, chiamare l'API REST di Firestore con il token dell'utente e mantenere valido quel token.

Recupera la configurazione pubblica

Una sola GET restituisce la configurazione del progetto Firebase. L'apiKey è pubblica per scelta: identifica il progetto, non chi chiama. Mettila in cache; basta aggiornarla ogni settimana.

Accedi come l'utente

L'email e la password dell'utente stesso restituiscono un UID, un idToken da 1 ora e un refreshToken. Google Sign-In richiede un browser, quindi i client senza interfaccia usano una password.

Leggi e scrivi in Firestore

Invia l'idToken come token Bearer. Le bobine si trovano in users/{uid}/inventory, gli scaffali in users/{uid}/racks; i pesi sono grammi netti, le date millisecondi Unix.

Nessun account di servizio

Ogni client accede con le credenziali dell'utente finale stesso. Non includere mai l'SDK firebase-admin né alcuna chiave di amministrazione in un client di terze parti.

Decidono le Security Rules

Le Firestore Security Rules verificano ogni richiesta rispetto all'utente connesso: il proprietario legge e scrive i propri documenti, gli amici leggono inventario e scaffali, tutto il resto è negato.

Un contratto pubblico

I percorsi dei documenti e i nomi dei campi restano stabili. Rinominare o rimuovere un campo richiede almeno 3 mesi di preavviso nel changelog; i nuovi campi si aggiungono sempre.

Home Assistant

Una bozza di componente personalizzato che espone un sensore per bobina, con il peso residuo in grammi come stato. La guida tratta anche gli inventari degli amici, la paginazione e la conservazione dei token.

The TigerSystem apps and devices around one account

Una bilancia ESP32 o un dispositivo NFC

Cerca una bobina tramite l'UID RFID scansionato (uid, poi twin_uid), calcola il peso netto e scrivi weight_available e last_update con una maschera di aggiornamento. La guida si conclude con uno sketch completo per ESP32 (WiFi, ArduinoJson).

Tiger NFC Connect on a phone

Uno script Python

Un client Python minimale basato su Pyrebase4: accede, elenca le tue bobine e mostra quante bobine ha ciascun amico. La guida contiene lo script completo e un esempio di esecuzione.

Domande

Mi serve un account di servizio o una chiave di amministrazione?

No. Ogni client accede con l'email e la password TigerSystem dell'utente finale stesso, e le Firestore Security Rules decidono cosa quell'utente può leggere o scrivere. Non esiste alcuna chiave di amministrazione condivisa, e l'SDK firebase-admin non deve mai essere usato in un client di terze parti.

Perché l'apiKey di Firebase è pubblica?

L'apiKey identifica il progetto Firebase, non chi effettua la chiamata. Senza un idToken valido, ottenuto accedendo come un utente reale, non dà accesso a nulla; il controllo degli accessi è affidato all'autenticazione e alle Security Rules.

Home Assistant o un ESP32 possono accedere con Google?

Non direttamente: Google Sign-In richiede un reindirizzamento nel browser. Un utente che ha sempre usato solo Google imposta prima una password sul proprio account TigerSystem, tramite la procedura di password dimenticata di Tiger Studio Manager 2 o Tiger NFC Connect, e poi accede con email e password.

Con quale frequenza può interrogare la mia integrazione?

Al massimo ogni 5 minuti per un sensore, ogni 15 minuti per una panoramica degli scaffali, e mai sotto i 30 secondi. Una bilancia scrive solo quando un peso cambia. Le letture di elenchi devono passare un limite: 200 per l'inventario, 50 per gli scaffali.

La mia integrazione può leggere le bobine di un amico?

Sì, in sola lettura. Quando due utenti sono amici, ciascuno ha un documento per l'altro in users/{uid}/friends, e le regole consentono a un amico di leggere l'inventario e gli scaffali. Ciascuno dei due può rimuovere l'amicizia in qualsiasi momento, interrompendo subito l'accesso.

Inizia la tua integrazione

Scegli la guida per la tua piattaforma e seguila dall'accesso alla prima lettura. Ciò che è documentato è ciò che è in produzione.

Inizia un'integrazione