Firebase Management API projects.addFirebase отказано - PullRequest
0 голосов
/ 19 февраля 2019

Проблема: метод API управления Firebase projects.addFirebase возвращает код состояния 403

Шаги для воссоздания:

В приложении Android мне нужно создать отдельные учетные записи Firebase для базы данных реального времени.Для этого я аутентифицирую пользователей с помощью GoogleSignIn.Затем я получаю токен с соответствующей областью действия "oauth2: https://www.googleapis.com/auth/cloud-platform".. На следующем шаге я использую API GCP Resource Manager для создания нового проекта GCP, который будет контейнером для проекта Firebase.

Новый проектуспешно создается на каждой из тестовых учетных записей.

Когда я пытаюсь вызвать метод API управления Firebase projects.addFirebase, используя тот же токен, который я получил ранее (та же область действия), я получаю сообщение об ошибке «У вызывающей стороны нет разрешения». Эта ошибка возникает на 3 из 4 учетных записей, которые я пробовал.

Мне удалось воспроизвести эту ошибку также с помощью google-apis-explorer. Apis Explorer

Iбудем благодарны за любые подсказки о том, как решить эту проблему. Как я упоминал ранее, эта ошибка не возникает ни на одном из протестированных мной аккаунтов, а на остальных трех - каждый раз.

Спасибо.

Обновление

@ Дуг, спасибо, что нашли время посмотреть на мою проблему. Кажется, я нашел причину. После доступа к https://console.firebase.google.com и нажав «Добавить проект», появилось следующее всплывающее окно (я не могу вставить его напрямую, потому что моя репутация слишком низкая):

Всплывающая ссылка

После того, как я проверил все согласия и добавил первый проект, я также могу успешно совершать вызовы API.

Похоже, у меня возник вопрос: существует ли способ предоставления необходимых разрешений через вызовы Resi Manager Api, чтобы я могможно добавить Firebase в существующий облачный проект?

Также для справки я вставляю метод, который я использую для вызова projects.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
);

Спасибоза вашу помощь.

Ps.извините за мой плохой английский, это не мой родной язык.

...