Комбинируйте запросы в Firebase Cloud Firestore для JavaScript с RxFire

Это гораздо более простой способ написать комбинированные запросы для Cloud Firestore. Если вы предпочитаете просто использовать RxJS, ознакомьтесь с разделом Выполнение запросов OR с Firebase Cloud Firestore для JavaScript с RxJS.

Что такое RxFire?

RxFire - это независимая от фреймворка библиотека, которая помогает создавать наблюдаемые объекты RxJS из различных операций Firebase, которые обычно включают в себя ваш проект Firebase, таких как аутентификация, база данных в реальном времени, Firestore, хранилище и т. Д. В этой статье мы рассмотрим, как объединить несколько запросов Firestore. вместе, используя RxFire как единый наблюдаемый поток. Я буду использовать те же примеры, которые упоминались в моей предыдущей статье Выполнение запросов OR с Firebase Cloud Firestore для JavaScript с RxJS, чтобы вы могли увидеть, насколько проще RxFire.

Создание наблюдаемых объектов Firestore с помощью RxFire

Давайте посмотрим, как это делается без помощи RxFire, чтобы провести сравнение.

Теперь с помощью RxFire мы можем упростить это, поскольку нам не нужно вручную создавать Subject и обновлять наблюдаемое вручную при получении нового значения:

RxFire включает в себя наблюдаемые функции генерации, такие как collection, которые можно использовать для создания наблюдаемого непосредственно из Firestore Query. Это выглядит намного проще и чище, правда?

Объединение наблюдаемых в единый поток

Поскольку мы легко создали наблюдаемые с помощью collection, предоставленного RxFire/firestore, мы можем легко объединить наблюдаемые вместе:

Резюме

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

RxFire имеет другие наблюдаемые методы создания для других часто используемых частей Firebase SDK, особенно в аутентификации, хранилище и базе данных в реальном времени. Посетите RxFire’s GitHub.