Obter a configuração pública
Um único GET devolve a configuração do projeto Firebase. A apiKey é pública por conceção: identifica o projeto, não quem faz o pedido. Guarda-a em cache; basta atualizá-la semanalmente.
Referência de integração para terceiros
A conta TigerSystem liga cada app e cada dispositivo. A tua app, o teu dispositivo ou o Home Assistant liga-se a ela nativamente através do Firebase: inicia sessão com as credenciais do próprio utilizador, lê as bobinas e as prateleiras dele no Firestore e volta a escrever os pesos.
$ 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 }Todos os clientes seguem os mesmos quatro passos: obter a configuração pública do Firebase, iniciar sessão como o utilizador, chamar a API REST do Firestore com o token do utilizador e manter esse token atualizado.
Um único GET devolve a configuração do projeto Firebase. A apiKey é pública por conceção: identifica o projeto, não quem faz o pedido. Guarda-a em cache; basta atualizá-la semanalmente.
O e-mail e a palavra-passe do utilizador devolvem um UID, um idToken de 1 hora e um refreshToken. O Google Sign-In requer navegador, por isso sem interface usa-se palavra-passe.
Envia o idToken como token Bearer. As bobinas encontram-se em users/{uid}/inventory e as prateleiras em users/{uid}/racks; os pesos são gramas líquidas e as datas milissegundos Unix.
Todos os clientes iniciam sessão com as credenciais do próprio utilizador final. Nunca incluas o SDK firebase-admin nem qualquer chave de administrador num cliente de terceiros.
As Firestore Security Rules verificam cada pedido face ao utilizador autenticado: o dono lê e escreve os seus documentos, os amigos leem inventário e prateleiras, e o resto é recusado.
Os caminhos dos documentos e os nomes dos campos são estáveis. Renomear ou remover um campo exige pelo menos 3 meses de pré-aviso no changelog; campos novos são sempre aditivos.
Um esboço de componente personalizado que expõe um sensor por bobina, com o peso restante em gramas como estado. O guia cobre também os inventários de amigos, a paginação e o armazenamento de tokens.

Procura uma bobina pelo UID RFID lido (uid e, a seguir, twin_uid), calcula o peso líquido e escreve weight_available e last_update com uma update mask. O guia termina com um sketch ESP32 completo (WiFi, ArduinoJson).

Um cliente Python mínimo assente no Pyrebase4: inicia sessão, lista as tuas bobinas e indica quantas bobinas tem cada amigo. O guia contém o script completo e um exemplo de execução.
Não. Todos os clientes iniciam sessão com o e-mail e a palavra-passe TigerSystem do próprio utilizador final, e as Firestore Security Rules determinam o que esse utilizador pode ler ou escrever. Não existe nenhuma chave de administrador partilhada, e o SDK firebase-admin nunca deve ser utilizado num cliente de terceiros.
A apiKey identifica o projeto Firebase, não quem faz o pedido. Sem um idToken válido, obtido ao iniciar sessão como um utilizador real, não dá acesso a nada; o controlo de acesso é assegurado pela autenticação e pelas Security Rules.
Não diretamente: o Google Sign-In requer um redirecionamento no navegador. Um utilizador que sempre usou apenas o Google define primeiro uma palavra-passe na conta TigerSystem, através da opção de palavra-passe esquecida do Tiger Studio Manager 2 ou do Tiger NFC Connect, e depois inicia sessão com e-mail e palavra-passe.
No máximo a cada 5 minutos para um sensor, a cada 15 minutos para uma vista geral das prateleiras, e nunca abaixo de 30 segundos. Uma balança só escreve quando um peso muda. As leituras de listas devem indicar um limite: 200 para o inventário, 50 para as prateleiras.
Sim, apenas em leitura. Quando dois utilizadores são amigos, cada um tem um documento relativo ao outro em users/{uid}/friends, e as regras permitem que um amigo leia o inventário e as prateleiras. Qualquer um dos dois pode pôr fim à amizade a qualquer momento, o que corta o acesso de imediato.
Escolhe o guia da tua plataforma e segue-o desde o início de sessão até à primeira leitura. O que está documentado é o que está implementado.
Iniciar uma integração