Executando verificação de segurança...
2

Mano? a configuração do firebase é literalmente isso aqui

import { initializeApp } from "firebase/app";
import {  getFirestore, collection, getDocs } from "firebase/firestore/lite";

const init = initializeApp({
    apiKey: process.env.FIREBASE_API_KEY,
    authDomain: process.env.FIREBASE_AUTH_DOMAIN,
    projectId: process.env.FIREBASE_PROJECT_ID,
    storageBucket: process.env.FIREBASE_STORAGE_BUCKET,
    messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID,
    appId: process.env.FIREBASE_APP_ID,
    measurementId: process.env.FIREBASE_MEASUREMENT_ID
});

let db = getFirestore(init);

const userCollection = collection(db, 'users');
const usersSnap = await getDocs(userCollection);
const usersList = usersSnap.docs.map((user) => {
    return {
        id: user.id,
        data: user.data()
    }
});
Carregando publicação patrocinada...
2

Opa devcael, tudo bem contigo?

Mano? a configuração do firebase é literalmente isso aqui tu fez um package pra reduzir isso?

Sim e não.

Se você reparar no seu código, você escreveu algumas linhas de código para buscar os 'users' no Firebase.

Aparentemente, você vai precisar reutilizar esse mesmo código e importar as mesmas funções em todo lugar que você quiser buscar os 'users' no Firebase.

O pacote não foi feito para configurar o Firebase, ele foi feito para mudar a sintaxe e a maneira que você utiliza ele.

Como você pode ver no exemplo da postagem, com apenas uma linha de código, o Refirebase fez a mesma coisa que o seu código.

A maior diferença de um para o outro é a necessidade de você precisar repetir seu código em outros arquivos, importar as mesmas funções e o mesmo 'db' que você provavelmente vai criar em um config/firebase.js?

Com o Refirebase você tem as tipagens e uma sintaxe facilitada para utilizar o firestore, o realtime, o storage e o authentication.

agora está sendo implementado o analytics também.

Você deu um exemplo com 23 linhas de código e desmereceu o trabalho que o pacote pode fazer para contribuir em projetos maiores.

O Refirebase foi construído pensando nas repetições de código, importações repetitivas e possíveis alterações na sintaxe original do Firebase.

3

Oi, tudo bem comigo sim, espero que com você também! Perdão se a minha primeira mensagem pareceu rude, não foi a intenção, e até eu achei meio brusca depois de ler novamente tanto que editei.

O meu ponto foi questionar o fato de usar uma micro library para algo que já é relativamente simples.

Todos nós sabemos que não é necessário "copiar e colar" código em toda a codebase. A configuração do Firebase por si só já adiciona uma biblioteca significativa ao projeto, e incluir mais uma camada de dependência em uma parte tão crucial como o acesso ao banco de dados parece uma trade-off complicada. Para implementar um CRUD em um banco NoSQL, geralmente não precisamos de mais de 6 funções e, no máximo, 300 linhas de código.

Novamente, isso não é um ataque ao seu trabalho ou à proposta do Refirebase. A minha preocupação está mais na questão de adicionar mais dependências. Só de instalar o Firebase já estamos trazendo uma dependência, e incluir outra dependência para gerenciar essa primeira, especialmente em uma parte tão importante do projeto, pode impactar a estrutura, mesmo em projetos maiores.

Como o Rob Pike disse:

"A little copying is better than a little dependency."
— Rob Pike, Go Proverbs

Quero aproveitar para te dar os parabéns pelo projeto, que com certeza tem o seu valor e resolve problemas. Eu só queria expor um ponto de vista sobre dependências e simplicidade, sem desmerecer o trabalho que você fez. Acho que cada abordagem tem seu mérito, e essa discussão é parte do processo de evoluir nossos projetos.

1

Fica tranquilo devcael, e me desculpa a demora em responder.

Confesso que a sua mensagem estava bem rude, mas eu entendi que não era a sua intenção.

...e incluir mais uma camada de dependência em uma parte tão crucial como o acesso ao banco de dados parece uma trade-off complicada.

Com o Refirebase você não precisa adicionar uma nova camada de dependência, afinal, o que estamos fazendo é 'pegar' as funções do Firebase e simplificando elas, para melhorar a experiência do desenvolvedor.

Você nem precisa ter o Firebase instalado, o próprio Refirebase já trabalha com ele.

A minha preocupação está mais na questão de adicionar mais dependências.

Exatamente, você não precisa instalar o Firebase, apenas o Refirebase e você vai ter todas as funcionalidades do Firebase, simplificadas.

Quero aproveitar para te dar os parabéns pelo projeto, que com certeza tem o seu valor e resolve problemas.

Muito obrigado pelo reconhecimento, estamos tentando alcançar o máximo de desenvolvedores com essa biblioteca.

Acredito que para alguns, ela vai ter um valor enorme.