Referencia de integración para terceros

Conecta tu app a una cuenta TigerSystem

La cuenta TigerSystem une cada app y cada dispositivo. Tu app, tu dispositivo o Home Assistant se conecta a ella de forma nativa a través de Firebase: inicia sesión con las credenciales del propio usuario, lee sus bobinas y estanterías en Firestore y vuelve a escribir los pesos.

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 }
Duración de un idToken: renuévalo antes de que caduque
1 hDuración de un idToken: renuévalo antes de que caduque
Intervalo mínimo de sondeo recomendado
5 minIntervalo mínimo de sondeo recomendado
Preaviso mínimo de obsolescencia antes de renombrar o eliminar un campo
3 mesesPreaviso mínimo de obsolescencia antes de renombrar o eliminar un campo
Licencia de cada fragmento de código: pégalo en tu proyecto, sin atribución
Apache-2.0Licencia de cada fragmento de código: pégalo en tu proyecto, sin atribución

Cómo se conecta un cliente a TigerSystem

Todos los clientes siguen los mismos cuatro pasos: obtener la configuración pública de Firebase, iniciar sesión como el usuario, llamar a la API REST de Firestore con el token del usuario y mantener ese token vigente.

Obtener la configuración pública

Un solo GET devuelve la configuración del proyecto Firebase. El apiKey es público por diseño: identifica el proyecto, no a quien llama. Guárdalo en caché; basta renovarlo cada semana.

Iniciar sesión como el usuario

El correo y la contraseña del usuario devuelven un UID, un idToken de 1 hora y un refreshToken. Google Sign-In necesita navegador, así que sin interfaz se usa contraseña.

Leer y escribir en Firestore

Envía el idToken como token Bearer. Las bobinas están en users/{uid}/inventory y las estanterías en users/{uid}/racks; los pesos son gramos netos y las fechas, milisegundos Unix.

Sin cuenta de servicio

Cada cliente inicia sesión con las credenciales del propio usuario final. Nunca incluyas el SDK firebase-admin ni ninguna clave de administrador en un cliente de terceros.

Las Security Rules deciden

Las Firestore Security Rules comprueban cada petición según el usuario conectado: el propietario lee y escribe sus documentos, los amigos leen inventario y estanterías, y lo demás se deniega.

Un contrato público

Rutas de documentos y nombres de campos son estables. Renombrar o eliminar un campo exige un aviso mínimo de 3 meses en el changelog; los campos nuevos se suman.

Home Assistant

Un boceto de componente personalizado que expone un sensor por bobina, con el peso restante en gramos como estado. La guía también cubre los inventarios de amigos, la paginación y el almacenamiento de tokens.

The TigerSystem apps and devices around one account

Una báscula ESP32 o un dispositivo NFC

Busca una bobina por el UID RFID escaneado (uid y luego twin_uid), calcula el peso neto y escribe weight_available y last_update con una máscara de actualización. La guía termina con un sketch completo para ESP32 (WiFi, ArduinoJson).

Tiger NFC Connect on a phone

Un script de Python

Un cliente mínimo en Python basado en Pyrebase4: inicia sesión, lista tus bobinas y muestra cuántas bobinas tiene cada amigo. La guía contiene el script completo y un ejemplo de ejecución.

Preguntas

¿Necesito una cuenta de servicio o una clave de administrador?

No. Cada cliente inicia sesión con el correo y la contraseña TigerSystem del propio usuario final, y las Firestore Security Rules deciden qué puede leer o escribir ese usuario. No existe ninguna clave de administrador compartida, y el SDK firebase-admin nunca debe usarse en un cliente de terceros.

¿Por qué es público el apiKey de Firebase?

El apiKey identifica el proyecto Firebase, no a quien llama. Sin un idToken válido, obtenido al iniciar sesión como un usuario real, no da acceso a nada; el control de acceso lo realizan la autenticación y las Security Rules.

¿Puede Home Assistant o un ESP32 iniciar sesión con Google?

No directamente: Google Sign-In necesita una redirección en el navegador. Un usuario que solo ha usado Google establece primero una contraseña en su cuenta TigerSystem, mediante la función de contraseña olvidada de Tiger Studio Manager 2 o Tiger NFC Connect, y después inicia sesión con correo y contraseña.

¿Con qué frecuencia puede sondear mi integración?

Como máximo cada 5 minutos para un sensor, cada 15 minutos para una vista general de estanterías, y nunca por debajo de 30 segundos. Una báscula solo escribe cuando cambia un peso. Las lecturas de listas deben pasar un límite: 200 para el inventario, 50 para las estanterías.

¿Puede mi integración leer las bobinas de un amigo?

Sí, en solo lectura. Cuando dos usuarios son amigos, cada uno tiene un documento del otro en users/{uid}/friends, y las reglas permiten a un amigo leer el inventario y las estanterías. Cualquiera de los dos puede eliminar la amistad en cualquier momento, lo que corta el acceso de inmediato.

Empieza tu integración

Elige la guía de tu plataforma y síguela desde el inicio de sesión hasta tu primera lectura. Lo que se documenta es lo que está desplegado.

Empezar una integración