npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@beyond-js/firestore-collection

v0.1.0

Published

The Collections module provides a TypeScript class for simplifying interactions with Firestore collections and documents.

Downloads

116

Readme

Collections Module

Overview

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.

Features

  • 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 the Errors module.
  • Uniform API responses using the Response class.

Usage

Authentication and Configuration

During development, the Collection class will attempt to authenticate using the credentials specified in a local JSON file (credentials/gcloud.json). Place this file in the root of your project and ensure it contains valid Firebase credentials. If the file is found, it will be used as the primary method for authentication. If not present, the class defaults to using the credentials of the associated Google Cloud service account.

Important:

  • Local Development: We recommend you to use a service account only in local environment. Ensure you include the credentials path in your .gitignore file to prevent uploading sensitive information to version control.
  • Production Deployment: When deploying your application, avoid using service account credentials. Instead, rely on the identity and access management (IAM) configurations that are native to the environment where your application is hosted (e.g., Google Cloud IAM roles).

Initialization

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');

Fetching a Collection

Retrieve a Firestore collection reference.

const collection = users.col();

Fetching a Document

Retrieve a Firestore document reference.

const doc = users.doc({ id: '...', parent: '...' });

Fetching a Document Snapshot

Get a snapshot of a document asynchronously.

const response = await users.snapshot({ id: '...', parent: '...' });

Fetching Document Data

Fetch document data along with additional metadata asynchronously.

const response = await users.data({ id: '...', parent: '...' });

Error Handling

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;

API Reference

  • 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.