Проблема: метод Projects.addFirebase API управления Firebase возвращает код состояния 403.
Шаги для воссоздания:
В приложении для Android мне нужно создать отдельные учетные записи Firebase для базы данных в реальном времени. Для этого я аутентифицирую пользователей с помощью GoogleSignIn. Затем я получаю токен с правильной областью действия «oauth2: https://www.googleapis.com/auth/облачная платформа». На следующем шаге я использую GCP Resource Manager API для создания нового проекта GCP, который будет контейнером для проекта Firebase.
Новый проект успешно создан на каждой из тестовых учетных записей.
Когда я пытаюсь вызвать метод Projects.addFirebase API управления Firebase, используя тот же токен, который я получил ранее (такая же область), я получаю сообщение об ошибке «У вызывающего абонента нет разрешения». Эта ошибка возникает на 3 из 4 учетных записей, которые я пробовал.
Я смог воспроизвести ту же ошибку, используя google-apis-explorer. Апис Исследователь
Буду признателен за любые подсказки, как решить эту проблему. Как я уже упоминал ранее, эта ошибка не возникает ни на одном из протестированных мной аккаунтов, а на остальных трех она возникает каждый раз.
Спасибо.
Обновлять
@Doug, спасибо, что нашли время посмотреть на мою проблему. Кажется, я нашел причину. После доступа к https://console.firebase.google.com и нажатия «Добавить проект» появилось следующее всплывающее окно (я не могу вставить его напрямую, потому что моя репутация слишком низкая):
После того, как я проверил все согласия и добавил первый проект, я также могу успешно выполнять вызовы API.
Похоже, мой вопрос должен быть таким: есть ли способ предоставить необходимые разрешения через вызовы Resource Manager Api, чтобы я мог добавить Firebase в существующий облачный проект?
Также для справки я вставляю метод, который я использую для вызова project.addFirebase, он использует RxJava2 (Android) и Retrofit2.
@Headers({"Content-Type: application/json"})
@POST("projects/{project}:addFirebase")
Single<Operation> addFirebaseToProject(@Header("Authorization") String bearerToken,
@Path("project") String project,
@Body FirebaseDataModel dataModel
);
Спасибо за помощь.
Пс. извините за мой плохой английский, это не мой родной язык.
@DougStevenson Спасибо за вашу помощь. Я обновил вопрос.
Без показа минимального полного кода для воспроизведения проблемы мы ничем не сможем помочь.