Поскольку Service Worker обрабатывает запросы https, когда приложение находится в автономном режиме, я ожидаю, что при использовании функций Firebase Callables должно применяться то же поведение. Эти Callables - это просто вызовы HTTP - POST.
Окружение:
- Угловой 8 Frontend
- @ угловой / пожарный пакет в качестве оболочки для Firebase SDK
- @ angular / pwa для автономных возможностей
- firebase http callables функционирует на стороне сервера для обработки запросов
с внешнего интерфейса
Ситуация:
Как пользователь, я запускаю на внешнем интерфейсе действие, которое будет выполнять запрос к вызываемой функции из базы. Вызываемая функция отправит мне ответ с информацией об успехе или неудаче, который будет представлен мне в пользовательском интерфейсе.
Это работает на 100%, как и ожидалось.
Теперь я сделаю то же самое с моим устройством в автономном режиме.
Мои ожидания:
Поскольку мое приложение является PWA, запрос должен быть перехвачен работником службы. Статус результата запроса должен быть 200.
Когда мое устройство снова подключается к сети, работник службы должен отправить исходный запрос.
Текущее поведение:
При вызове функции firebase в автономном режиме веб-интерфейс (угловая служба) немедленно возвращает код состояния 500 «внутренняя ошибка». При возвращении в онлайн сервисный работник не отправляет прошлый запрос вызываемой функции на firebase.
Правильно ли мое ожидание?
Нужно ли что-то настраивать на стороне пожарной базы / угловой?
Это из-за использования @ angular / fire в качестве оболочки?
Имеете ли вы какой-либо опыт использования таких вариантов использования и можете предоставить дополнительную информацию?
Заранее большое спасибо!
import { AngularFireFunctions } from '@angular/fire/functions';
constructor(
private readonly functions: AngularFireFunctions
}
doSomething(data:{text:string}){
return this.functions.httpsCallable('handleEvent')({
... some data to pass to the function here ...
});
}
При вызове doSomething, когда браузер находится в автономном режиме, ответ с кодом состояния 500 - внутренний - передается обратно.
Вызов функции в режиме онлайн работает, как и ожидалось.