Отказ от подписки на базу данных Firebase Realtime - PullRequest
0 голосов
/ 24 июня 2018

В моем приложении Ionic есть система чата, которая отображается в модальном окне. В модальном окне у меня есть код ниже. Кажется, что после использования приложения на некоторое время оно становится немного вялым.

Я подозреваю, что это потому, что я должен отписаться от Firebase, когда закрываю модальное окно. Другими словами, похоже, что создается новая подписка каждый раз, когда я нажимаю кнопку, чтобы открыть модальное окно. Это тот случай? Если так, что я должен сделать? Я не вижу опцию отмены подписки в документах?

ionViewDidLoad() {
    firebase.database().ref('chatrooms/'+this.roomkey+'/chats').limitToLast(30).on('value', resp => {

        this.chats = [];
        this.chats = snapshotToArray(resp);
        this.content.scrollTo(0, 999999, 200);

    });
}

Я пробовал следующее для вызова off, но не уверен, что это правильный подход? Я положил это в ionViewDidLeave()

firebase.database().ref('chatrooms/'+this.roomkey+'/chats').limitToLast(30).off('value');

1 Ответ

0 голосов
/ 24 июня 2018

Вы должны всегда удалять любых слушателей из ссылки на базу данных, когда этот слушатель больше не нужен.В противном случае этот слушатель будет продолжать получать снимки при изменении данных.

Чтобы удалить слушателя, используйте метод off () для той же ссылки, которую вы использовали для вызова on () .Передайте ему функцию обратного вызова, которую вы передали on ().Пожалуйста, ознакомьтесь также с документацией для слушателей отрывающихся .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...