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

@inside-tech/general-firestore

v0.2.12

Published

### General firestore é responsável por fazer o acesso ao Firestore.

Downloads

52

Readme

general-firestore

General firestore é responsável por fazer o acesso ao Firestore.

É possível usar o projeto como submodule ou cloud function, estamos importando o projeto em alguma cloud function que tenha a necessidade em acessar os dados no Firestore.

Methods existentes

  • [x] POST
  • [x] GET - get pelo id do documento, get com filter, pagination
  • [ ] PUT
  • [ ] DELETE - parcial

Quando você importar o general-firestore como um submodule utilize os methods get e insert que estão dentro da classe GeneralFirestore no arquivo index.ts para recuperar ou inserir dados.

  • get()
  • insert()

Lembre-se - Importante

  • Todas as consultas precisam da COLLECTION principal.

  • Select - Se o select não for informado será retornado tudo que existe no/nos document

  • Offset - Se o offset não for informado será utilizado um offset default

offset = {
  skip: 0,
  limit: 30,
}

Select

Se o select não for informado será retornado tudo que existe no/nos document. Quando informado é possível retornar os valores do document

Offset

Se o offset não for informado será utilizado um offset default. O Offset utiliza dois valores informados pelo dev, skip para "pular" itens e o "limit" que é o campo onde limita a QUANTIDADE de valores retornados, ou seja se eu informar um limit = 0 ou limit = 1 o máximo de documents retornados será 1.

Exemplo das chamadas

  • collection: required
  • filter: optional
  • select: optional
  • offset: optional

Pesquisa entre objetos

Quando você precisa navegar entre objetos utilize da seguinte forma:

  • GET / Request Body
{
    "collection": "atento-users-test",
    "filter": {
        "auth.credentials.login": "login"

    }
}

$gt (>)

Quando você informar o $gt no filter o valor informado será filtrado como maior que (>).

  • GET / Request Body
{
    "collection": "users",
    "filter": {
        "idade": {
            "$gt": 17
        }
    },
    "select": {
        "name": true
    },
    "offset": {
        "skip": 0,
        "limit": 0
    }
}

$lt (<)

Quando você informar o $lt no filter o valor informado será filtrado como menor que (<).

  • GET / Request Body
{
    "collection": "users",
    "filter": {
        "idade": {
            "$lt": 17
        }
    },
    "select": {
        "name": true
    },
    "offset": {
        "skip": 0,
        "limit": 0
    }
}

$gte (>=)

Quando você informar o $gte no filter o valor informado será filtrado como maior ou igual que (>=).

  • GET / Request Body
{
    "collection": "users",
    "filter": {
        "idade": {
            "$gte": 17
        }
    },
    "select": {
        "name": true,
        "idade": true
    },
    "offset": {
        "skip": 0,
        "limit": 0
    }
}

$lte (<=)

Quando você informar o $lte no filter o valor informado será filtrado como menor ou igual que (<=).

  • GET / Request Body
{
    "collection": "users",
    "filter": {
        "peso": {
            "$gte": 88.88
        }
    },
    "select": {
        "peso": true,
        "idade": true,
        "estado": true
    },
    "offset": {
        "skip": 0,
        "limit": 0
    }
}

$not (!=)

Quando você informar o $not no filter o valor informado será filtrado como não igual / diferente de (!=).

  • GET / Request Body
{
    "collection": "admin",
    "filter": {
        "email": {
            "$not": "[email protected]"
        }
    }
}

$elemMatch (array-contains)

Quando você tem um campo no document e esse campo é um array use o elemMatch para filtrar informando um valor unico para comparar. Lembrando que vai retornar se houver varios documents que contenham o valor informado no campo (array).

  • GET / Request Body
{
    "collection": "users",
    "filter": {
        "perfis": {
            "$elemMatch": "admin"
        }
    }
}

$in (in)

O in é usado quando você tem um campo comum (não array) no seu document, passando um array como valor para o filter retornará todos os documents encontrados que apresentam aquele campo encontrado.

  • GET / Request Body
{
    "collection": "users",
    "filter": {
        "idade": [18, 17]

    },
    "select": {
        "name": true,
        "perfis": true

    }
}

Exemplo do retorno: Buscamos todos dos documents em que a idade seja 18 ou 17 anos.

- Retorno JSON
[
    {
        "id": "YYdBeXF2DEeWbquH9wFk",
        "perfis": [
            "admin",
            "comum"
        ],
        "name": "Youtube"
    },
    {
        "id": "nI0t1glYEEJtHJt5X3BO",
        "perfis": [
            "admin",
            "comum"
        ],
        "name": "Zame"
    }
]

$nin (not-in)

O nin é a inverso do in, retornará os documents onde o valor ou valores informados é diferente do array do filter

  • GET / Request Body
{
    "collection": "users",
    "filter": {
        "idade": {
            "$nin": [18]
        }

    },
    "select": {
        "name": true,
        "perfis": true,
        "idade": true
    }
}

- Retorno JSON
[
    {
        "id": "nI0t1glYEEJtHJt5X3BO",
        "perfis": [
            "admin",
            "comum"
        ],
        "idade": 17,
        "name": "Zame"
    }
]

$all (array-contains-any)

Para utilizar o all informe um array no filter, retornará todos os documents com o valor informado presente.

  • GET / Request Body
{
    "collection": "users",
    "filter": {
        "perfis": {
            "$all": ["comum"]
        }
    }

}

- Retorno JSON
[
    {
        "id": "2KEEKkD80lCzuUPkH5tz",
        "perfis": [
            "admin",
            "comum"
        ],
        "name": "Praia",
        "body": {
            "head": "cabeça",
            "armis": {
                "left": "esquerda",
                "right": "direita"
            }
        }
    },
    {
        "id": "LIwbuzicmSMc5QlKnpe2",
        "perfis": [
            "admin",
            "comum"
        ],
        "name": "Google",
        "body": {
            "head": "cabeça",
            "armis": {
                "left": "esquerda",
                "right": "direita"
            }
        }
    },
]