Я создал мобильную серверную часть для своего приложения Android с использованием конечных точек Google Cloud (версия 1, с использованием студии Android). Я хочу аутентифицировать своих пользователей по электронной почте / паролю, поэтому я использую для этого аутентификацию Firebase. SDK Firebase Authentication позволяет мне получить токен каждого пользователя на стороне клиента (в Android), а SDK администратора Firebase позволяет мне проверять действительность токена на бэкэнде. Я понимаю, что в облачных конечных точках я могу предоставить свой собственный пользовательский аутентификатор (см. Google Cloud Endpoints и аутентификация пользователя), и я планирую вызвать sdk администратора firebase в моем настраиваемом аутентификаторе, чтобы проверить представленный пользователем токен.
Моя проблема в том, что, поскольку я использую конечные точки облака Google для создания своего бэкэнда, я не знаю, куда вставить код для инициализации объекта администратора firebase, который требуется, прежде чем я смогу проверить какие-либо токены. В обычной среде движка приложений вы должны выполнить эту инициализацию в методе init () HTTPServlet (см. https://github.com/GoogleCloudPlatform/firebase-appengine-backend/blob/master/src/main/java/com/google/cloud/solutions/flexenv/backend/MessageProcessorServlet.java), но облачные конечные точки скрывают это от вас, автоматически предоставляя «SystemServiceServlet» в качестве HTTPServlet. Я попытался создать подкласс SystemServiceServlet и переопределить метод init (), но затем развертывание конечной точки в движке приложения не удалось, поскольку, по-видимому, создание клиентских библиотек Android требует, чтобы использовался SystemServiceServlet (и он должен называться SystemServiceServlet ").
Я мог бы выполнить инициализацию приложения администратора firebase в каждом из методов api, которые предоставляют конечные точки облака (например, в методе вставки моего api), но это кажется крайне неэффективным. Как мне использовать SDK администратора Firebase в серверной части, созданной с использованием конечных точек Google Cloud?
Большое спасибо за ваше время