В чем разница между .valueChanges () и .get () - PullRequest
0 голосов
/ 31 марта 2020

Мне интересно, в чем разница между .valueChanges() и .get()

Вот подписи:
valueChanges(): Observable<T[]>;
get(options?: firestore.GetOptions): Observable<firestore.QuerySnapshot>;

Если вы берете при взгляде на этот буксировочный вызов они возвращают тот же результат:

this.firestore.collection('version').valueChanges().subscribe(x => {
  console.log;
});

this.firestore.collection('version').get().subscribe(x => {
  console.log;
});

Кажется, что в случае .get() вы можете играть с GetOptions: 'server' | 'cache', есть ли другие преимущества?

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

1 Ответ

1 голос
/ 31 марта 2020

get() просто извлекает данные один раз.

valueChanges() позволяет вашему коду наблюдать изменения, которые происходят с документами с течением времени.

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

Ни одно из этих действий не устанавливает никаких "соединений". Все операции Firestore передаются по конвейеру через одно соединение, поддерживаемое SDK.

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