Firebase с App Engine Гибкая версия не работает с 15 декабря 2017 года
Я создал приложение для Android с Firebase и использовал Google App Engine для управления бэкендом. Чтобы начать работу, мы использовали " Создание приложения для Android с использованием Firebase" и учебник по гибкой среде App Engine.
Это работает в гибкой бета-среде, поэтому я получил следующие электронные письма от Google: " [Напоминание] Бета-версия управляемых виртуальных машин App Engine выключается 15 декабря 2017 года ", которая также включала ссылку на обновление до последней версии гибкой среды App Engine,
С 15 декабря бэкэнд сломан (до этого все работало нормально). Я изменил свой appengine-web.xml
(app.yaml
не был частью вышеупомянутого проекта GitHub) из:
<env>vm</env>
чтобы:
<env>flex</env>
а также добавил:
<beta-settings>
<setting name="enable_app_engine_apis" value="true"/>
</beta-settings>
к моему appengine-web.xml
без успеха. Теперь я получаю:
java.io.FileNotFoundException: WEB-INF/logging.properties (No such file or directory)
также все еще получают ошибки как:
java.util.concurrent.ExecutionException:
com.google.apphosting.api.ApiProxy$RPCFailedException: The remote RPC to the
application server failed for the call logservice.Flush(). at
java.util.concurrent.FutureTask.report(FutureTask.java:122) at
java.util.concurrent.FutureTask.get(FutureTask.java:206) at com.google.apphosting.vmruntime.VmAppLogsWriter.waitForCurrentFlush(VmAppLogsWriter.java:226) at com.google.apphosting
INFO: Error body: App Engine APIs over the Service Bridge are disabled.
If they are required, enable them by setting the following to your app.yaml:
beta_settings:
enable_app_engine_apis: true
Так как у меня нет app.yaml
Я положил это в appengine-web.xml
, но это, кажется, игнорируется. Например, вызов API на https://fcm.googleapis.com/fcm/send больше не работает. Я думаю, что app.yaml
это правильный путь, но я не смог найти хорошего примера для развертывания бэкэнда gcloud, связанного с Firebase, поэтому я придерживался упомянутого выше руководства (параметр "flex" был добавлен в этот пример также 6 месяцев назад).
Я также пытался использовать app.yaml
(пожалуйста, смотрите скриншот для моего дерева проекта), но получите ошибки класса не найдены:
javax.servlet.UnavailableException:
com.qweez.flexenv.service.GameRequestProcessorServlet
а также:
java.lang.ClassNotFoundException:
com.qweez.flexenv.service.GameRequestProcessorServlet
Я не мог узнать, как запустить его с Firebase. Похоже, структура каталогов неверна или что-то отсутствует при развертывании.
Я пытался развернуть с помощью:
mvn gcloud:deploy #appengine-web.xml
так же как:
gcloud app deploy #app.yaml
Мои вопросы:
Это потому, что я пытаюсь использовать среду выполнения java-compat; который я предполагаю, является Java7? Если это так, как я могу перейти на "гибкое время выполнения" (я предполагаю, что Java8 с
app.yaml
)?Почему я по-прежнему получаю: "Ваши версии управляемой виртуальной машины в проекте *** были закрыты. Вы можете перезапустить свой проект на ограниченное время, но вам нужно перейти на гибкую среду App Engine, если вы хотите, чтобы ваш проект оставался доступным".".
Я развернул гибкие версии env, почему там все еще бета-версия?:
- Было бы лучше использовать
app.yaml
или жеappengine-web.xml
? Что мне нужно получитьapp.yaml
работа с Firebase, как это описано в разделе Создание приложения для Android с использованием Firebase и гибкой среды App Engine?
Было бы здорово, если бы кто-то мог указать мне правильное направление - я не смог бы найти что-либо в документах Google Cloud. Заранее спасибо!
ОБНОВЛЕНИЕ Началось с нуля после Quickstart для Java в гибкой среде App Engine и Firebase-Admin-SDK.