HttpInterceptor не работает с вызовами API angularfire2 / Firestore. Любое решение? - PullRequest
0 голосов
/ 19 апреля 2019

Информация о версии

Угловой: 7 / База огня: 5.7.3 / AngularFire: 5.1.1

Я попытался реализовать HttpInterceptor для вызовов API angularfire2 / Firestore (URL запроса: https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?database=projects....), но безуспешно.

Запросы не пересекают Перехватчик, поскольку @ angular / common / http / HttpClient не используется.

Есть ли обходной путь для интеграции функциональности Angular Interceptor в эти вызовы API?

Спасибо

1 Ответ

0 голосов
/ 21 апреля 2019

Насколько я знаю, AngularFire является дружественной оболочкой Angular для Firebase SDK.

Firebase SDK не использует Angular Http Client, поэтому вызовы API из SDK не могут быть перехвачены.

Для какого случая использования вы хотите перехватывать вызовы API Firebase?

Редактировать:

Вот пример псевдокода, как я реализую простой спиннер загрузки.

В случае события, которое запускает операцию Firestore, вы можете установить для isLoading значение true, и как только вы получите ответ от Firestore, вы можете установить isLoading для fasle.

В вашем шаблоне вы можетеотобразить загрузочный счетчик с *ngIf.

component.ts

this.isLoading = false;

onEvent() {
    this.isLoading = true;
    this.angularFirestore.collection('test').doc('testId').set(data)
        .subscribe(
            success => {
                this.isLoading = false;
            }
            error => {
                console.log(error);
                this.isLoading = false;
            }
        );
}

component.html

<div *ngIf="isLoading">
    <loading-spinner>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...