@magnetarjs/plugin-firestore-admin
Version:
Magnetar plugin firestore-admin
15 lines (14 loc) • 844 B
JavaScript
import { getFirestoreCollectionPath } from '@magnetarjs/utils-firestore';
import { getQueryInstance } from '../helpers/getFirestore.js';
export function fetchCountActionFactory(firestorePluginOptions) {
return async function ({ collectionPath, pluginModuleConfig, }) {
const { db } = firestorePluginOptions;
// in case of a doc module
const _collectionPath = getFirestoreCollectionPath(collectionPath, pluginModuleConfig, firestorePluginOptions); // prettier-ignore
const queryInstance = getQueryInstance(_collectionPath, pluginModuleConfig, db);
// see https://firebase.google.com/docs/firestore/query-data/aggregation-queries#use_the_count_aggregation
const querySnapshot = await queryInstance.count().get();
const count = querySnapshot.data().count;
return count;
};
}