Получите публичную конфигурацию
Один GET-запрос возвращает конфигурацию проекта Firebase. apiKey публичен по замыслу: он идентифицирует проект, а не вызывающую сторону. Кэшируй его; обновления раз в неделю достаточно.
Справочник по сторонним интеграциям
Аккаунт TigerSystem связывает каждое приложение и каждое устройство. Твоё приложение, устройство или Home Assistant подключается к нему напрямую через Firebase: входит с собственными учётными данными пользователя, читает его катушки и стеллажи в Firestore и записывает вес обратно.
$ 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 }Каждый клиент выполняет одни и те же четыре шага: получает публичную конфигурацию Firebase, входит от имени пользователя, вызывает Firestore REST API с токеном пользователя и поддерживает этот токен актуальным.
Один GET-запрос возвращает конфигурацию проекта Firebase. apiKey публичен по замыслу: он идентифицирует проект, а не вызывающую сторону. Кэшируй его; обновления раз в неделю достаточно.
Собственные адрес электронной почты и пароль пользователя возвращают UID, idToken на 1 час и refreshToken. Google Sign-In требует браузера, поэтому клиенты без интерфейса используют пароль.
Передавай idToken как Bearer-токен. Катушки хранятся в users/{uid}/inventory, стеллажи — в users/{uid}/racks; вес указывается нетто в граммах, даты — в миллисекундах Unix.
Каждый клиент входит с собственными учётными данными конечного пользователя. Никогда не включай firebase-admin SDK или какой-либо административный ключ в сторонний клиент.
Firestore Security Rules проверяют каждый запрос относительно вошедшего пользователя: владелец читает и пишет свои документы, друзья читают инвентарь и стеллажи, всё остальное запрещено.
Пути документов и имена полей остаются стабильными. Переименование или удаление поля объявляется в журнале изменений минимум за 3 месяца; новые поля только добавляются.
Набросок пользовательского компонента, который создаёт по одному датчику на катушку, с оставшимся весом в граммах в качестве состояния. Руководство также охватывает инвентари друзей, пагинацию и хранение токенов.

Найти катушку по считанному RFID UID (сначала uid, затем twin_uid), вычислить вес нетто и записать weight_available и last_update с маской обновления. Руководство завершается полным скетчем для ESP32 (WiFi, ArduinoJson).

Минимальный клиент на Python на основе Pyrebase4: он входит в аккаунт, выводит список твоих катушек и показывает, сколько катушек у каждого друга. Руководство содержит весь скрипт и пример запуска.
Нет. Каждый клиент входит с собственными адресом электронной почты и паролем TigerSystem конечного пользователя, а Firestore Security Rules решают, что этому пользователю разрешено читать или записывать. Общего административного ключа нет, и firebase-admin SDK никогда не должен использоваться в стороннем клиенте.
apiKey идентифицирует проект Firebase, а не вызывающую сторону. Без действительного idToken, полученного при входе от имени реального пользователя, он не даёт доступа ни к чему; контроль доступа обеспечивается аутентификацией и Security Rules.
Не напрямую: Google Sign-In требует перенаправления в браузере. Пользователь, который всегда входил только через Google, сначала задаёт пароль для аккаунта TigerSystem через функцию восстановления пароля в Tiger Studio Manager 2 или Tiger NFC Connect, а затем входит по адресу электронной почты и паролю.
Не чаще чем раз в 5 минут для датчика, раз в 15 минут для обзора стеллажей и никогда не чаще чем раз в 30 секунд. Весы записывают данные только при изменении веса. При чтении списков следует передавать limit: 200 для инвентаря, 50 для стеллажей.
Да, только для чтения. Когда два пользователя дружат, у каждого есть документ о другом в users/{uid}/friends, и правила позволяют другу читать инвентарь и стеллажи. Любой из пользователей может в любой момент прекратить дружбу, что немедленно прекращает доступ.
Выбери руководство для своей платформы и пройди его от входа до первого чтения. Что описано, то и развёрнуто.
Начать интеграцию