Firebase Admin SDK в App Engine с Java 8

Ранее Firebase Admin SDK не работал в App Engine с автоматическим масштабированием. Вероятно, это создаст несколько потоков, а класс Thread или что-то подобное не будет внесено в белый список.

Теперь, когда Google предоставил нам поддержку Java 8 в App Engine (и удалил белый список), исчезнет ли эта проблема? Будет ли Firebase Admin SDK работать с App Engine с автоматическим масштабированием?


person Peter Fortuin    schedule 09.07.2017    source источник
comment
пожалуйста, взгляните на следующую тему stackoverflow.com/questions/41446582/. С правильной версией Firebase Admin SDK будет работать на экземпляре внешнего интерфейса.   -  person Michael Meyer    schedule 09.07.2017
comment
Я не думаю, что в этом отношении есть какая-то разница с использованием Java 8. Есть ли какое-либо конкретное изменение в Java 8, которое заставляет вас думать, что теперь разрешено создание потоков в механизме приложения?   -  person Frank van Puffelen    schedule 09.07.2017
comment
Создание потоков разрешено в Java 8 в App Engine. Они удалили белый список.   -  person Peter Fortuin    schedule 10.07.2017


Ответы (1)


Firebase Admin SDK по-прежнему не будет работать в среде выполнения AppEngine Java 8 без ручного масштабирования по нескольким причинам:

  1. Поддержка потоков, доступная в среде выполнения Java 8, имеет некоторые ограничения. Например, любой поток, созданный не с использованием интерфейса ThreadManager AppEngine, не может вызывать API-интерфейсы AppEngine. Это означает, что эти потоки не могут совершать исходящие сетевые вызовы.
  2. Код клиента базы данных в SDK порождает длительные потоки. Единственный способ сделать это в среде AppEngine — использовать поддержку фоновых потоков. SDK специально ищет эту функцию при развертывании в AppEngine. Я пытался запустить SDK с ослабленным требованием, но это не сработало. Кажется, что потоки в области запроса не могут пережить запрос даже в новой среде выполнения Java 8.

Однако вы должны иметь возможность использовать интерфейс FirebaseAuth (используемый для создания пользовательских токенов, проверки идентификационных токенов и управления пользователями) в AppEngine без ручного масштабирования. Эта часть SDK поддерживает выполнение потоков в области запроса.

person Hiranya Jayathilaka    schedule 12.07.2017
comment
Спасибо за ответ. Не тот ответ, на который я надеялся, но остальные API также подойдут для моего варианта использования. - person Peter Fortuin; 14.07.2017