The Collections
module provides a TypeScript class for simplifying interactions with Firestore collections and
documents. Utilizing the power of TypeScript's strong typing, this class aims to make it easier to handle CRUD
operations in Firestore.
- Strongly typed operations via TypeScript.
- Methods for retrieving a collection or a document.
- Asynchronous methods for fetching document snapshots.
- Integrated error handling using the
ModelError
class from theErrors
module. - Uniform API responses using the
Response
class.
To include this module in your project, import it as follows:
import { Collection } from '@beyond-js/firestore-collection/collection';
Create a new Collection
object by specifying the Firestore collection name.
const users = new Collection<UserType>('Users');
Retrieve a Firestore collection reference.
const collection = users.col();
Retrieve a Firestore document reference.
const doc = users.doc({ id: '...', parent: '...' });
Get a snapshot of a document asynchronously.
const response = await users.snapshot({ id: '...', parent: '...' });
Fetch document data along with additional metadata asynchronously.
const response = await users.data({ id: '...', parent: '...' });
The Collections
class uses ModelError
for error encapsulation and returns it as part of a Response
object.
const response = await users.data({ id: 'nonexistentId', parent: '...' });
if (response.error) return response.error;
if (!response.data.exists) return response.data.error;
-
Collection<DataType>
: Generic class for managing Firestore collections. -
col(params?: { parent?: string })
: Method to get a collection reference. -
doc(params: { id: string; parent: string })
: Method to get a document reference. -
snapshot(params: { id: string; parent: string })
: Asynchronous method to fetch a document snapshot. -
data(params: { id: string; parent: string })
: Asynchronous method to fetch document data along with metadata.