Я хотел бы выполнять аутентифицированные GET-запросы к Firestore через REST API. Я могу успешно выполнить запрос GET, если мои правила Firestore установлены на:
service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if true; } } }
Формат запроса GET, который я использую для этого, следующий:
https://firestore.googleapis.com/v1/projects/YOUR_PROJECT_ID/databases/(default)/documents/cities/LA
Однако, если я добавлю аутентификацию и изменим правила на:
service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if request.auth.uid != null; } } }
, я должен иметь возможность аутентифицировать мой запрос GET. Я могу сделать запрос POST в следующем формате:
https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]&email=[EMAIL]&password=[PASSWORD]
Это возвращает idToken, который я хочу использовать для аутентификации моего запроса GET.
Как мне это сделать? Я попытался добавить ключ к моему запросу GET с новым idToken, но мне не повезло.
Получив идентификационный токен, вы можете передать его в API REST, используя заголовок авторизации с токеном на предъявителя:
Authorization: Bearer ${idToken}
См. документы для получения дополнительной информации.