Pular para o conteúdo
Skillpedia
APIs e servidores (backend)48 mil · #3006

firebase-app-platform

Faz seu agente construir e gerenciar aplicativos usando os serviços do Firebase. É útil para criar backends de apps com dados em tempo real ou APIs sem servidor.

O que ela faz

Esta ferramenta ajuda a criar e gerenciar o 'back-end' de aplicativos web e mobile. Ela cuida de coisas como salvar dados, permitir que usuários façam login e executar código no servidor.

Quando usar

  • ✓Criar um app que precisa salvar e mostrar dados em tempo real.
  • ✓Precisa de um sistema de login simples para seu app.
  • ✓Quer hospedar um site simples ou um aplicativo de página única.

Exemplo do que pedir para a IA

“Configure um sistema de login para meu aplicativo web usando Firebase.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/firebase-app-platform/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/firebase-app-platform/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Você usa comandos no seu computador para configurar o Firebase no seu projeto. Depois, ele cuida de salvar dados, autenticar usuários e até hospedar seu site.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill firebase-app-platform

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/firebase-app-platform/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Plataforma de Apps Firebase

Envie backends para dispositivos móveis e web com os serviços gerenciados do Firebase.

Quando Usar Esta Habilidade

Use esta habilidade quando:

  • Estiver criando apps para dispositivos móveis ou web com sincronização de dados em tempo real
  • Precisar de autenticação com o mínimo de código de backend
  • Estiver prototipando rapidamente com infraestrutura gerenciada
  • Estiver criando APIs serverless com Cloud Functions
  • Estiver hospedando sites estáticos ou SPAs com CDN

Pré-requisitos

  • Node.js 18+
  • Firebase CLI (npm install -g firebase-tools)
  • Conta do Google Cloud (Firebase faz parte do GCP)
  • Um projeto Firebase (crie em console.firebase.google.com)

Início Rápido

# Install and authenticate
npm install -g firebase-tools
firebase login

# Initialize in your project directory
firebase init
# Select: Firestore, Functions, Hosting, Emulators

# Start local emulators
firebase emulators:start

# Deploy everything
firebase deploy

# Deploy specific services
firebase deploy --only functions
firebase deploy --only hosting
firebase deploy --only firestore:rules

Banco de Dados Firestore

Regras de Segurança

// firestore.rules
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    // Users can only read/write their own data
    match /users/{userId} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }

    // Messages: authenticated users can read, only owner can write
    match /channels/{channelId}/messages/{messageId} {
      allow read: if request.auth != null;
      allow create: if request.auth != null
        && request.resource.data.userId == request.auth.uid
        && request.resource.data.body is string
        && request.resource.data.body.size() <= 5000;
      allow update, delete: if request.auth != null
        && resource.data.userId == request.auth.uid;
    }

    // Admin-only collection
    match /admin/{document=**} {
      allow read, write: if request.auth != null
        && get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role == 'admin';
    }

    // Default: deny everything
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

Operações de Dados

// lib/firestore.ts
import { getFirestore, collection, doc, setDoc, getDoc,
         query, where, orderBy, limit, onSnapshot,
         serverTimestamp, increment } from "firebase/firestore";

const db = getFirestore();

// Create document with auto-ID
async function createMessage(channelId: string, body: string, userId: string) {
  const ref = doc(collection(db, "channels", channelId, "messages"));
  await setDoc(ref, {
    body,
    userId,
    createdAt: serverTimestamp(),
  });
  return ref.id;
}

// Real-time listener
function subscribeToMessages(channelId: string, callback: (msgs: any[]) => void) {
  const q = query(
    collection(db, "channels", channelId, "messages"),
    orderBy("createdAt", "desc"),
    limit(50)
  );
  return onSnapshot(q, (snapshot) => {
    const messages = snapshot.docs.map(doc => ({ id: doc.id, ...doc.data() }));
    callback(messages);
  });
}

// Atomic counter
async function incrementViews(postId: string) {
  await setDoc(doc(db, "posts", postId), {
    views: increment(1),
  }, { merge: true });
}

Índices

// firestore.indexes.json
{
  "indexes": [
    {
      "collectionGroup": "messages",
      "queryScope": "COLLECTION",
      "fields": [
        { "fieldPath": "channelId", "order": "ASCENDING" },
        { "fieldPath": "createdAt", "order": "DESCENDING" }
      ]
    }
  ]
}

Autenticação

// lib/auth.ts
import { getAuth, signInWithPopup, GoogleAuthProvider,
         createUserWithEmailAndPassword, signInWithEmailAndPassword,
         signOut, onAuthStateChanged } from "firebase/auth";

const auth = getAuth();

// Google sign-in
async function signInWithGoogle() {
  const provider = new GoogleAuthProvider();
  const result = await signInWithPopup(auth, provider);
  return result.user;
}

// Email/password registration
async function register(email: string, password: string) {
  const result = await createUserWithEmailAndPassword(auth, email, password);
  return result.user;
}

// Auth state listener
onAuthStateChanged(auth, (user) => {
  if (user) {
    console.log("Signed in:", user.uid, user.email);
  } else {
    console.log("Signed out");
  }
});

Cloud Functions

// functions/src/index.ts
import { onRequest } from "firebase-functions/v2/https";

…
Perguntas frequentes

O que é 'back-end'?

É a parte do aplicativo que funciona 'nos bastidores', cuidando de dados, lógica e servidores, sem que o usuário veja diretamente.

O que são 'serviços gerenciados'?

São serviços que outra empresa (neste caso, o Firebase/Google) cuida para você, como servidores e bancos de dados, para que você não precise se preocupar com a infraestrutura.

O que é 'serverless'?

Significa que você não precisa gerenciar servidores. O código roda automaticamente quando necessário, e você paga apenas pelo uso.

Detalhes

Descrição original do autor

Build and operate apps on Firebase using Auth, Firestore, Cloud Functions, and Hosting. Use when building mobile/web backends with managed services, real-time data sync, or serverless APIs.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3006
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas