Firebase backend services integration for mobile apps
Integrates Firebase backend services like Authentication, Firestore, and Storage into mobile applications.
npx claudepluginhub a5c-ai/babysitterThis skill inherits all available tools. When active, it can use any tool Claude has access to.
README.mdThis skill provides Firebase backend services integration for mobile applications. It enables configuration of Authentication, Firestore, Storage, Cloud Functions, and other Firebase services.
bash - Execute Firebase CLI commandsread - Analyze Firebase configurationswrite - Generate security rules and configurationsedit - Update Firebase implementationsglob - Search for Firebase filesgrep - Search for patternsAuth Methods
Auth State
Database Operations
Security Rules
firebase-backend-integration.js - Firebase integrationfirebase-cloud-messaging.js - Push notificationsmobile-analytics-setup.js - Analytics// AppDelegate.swift
import FirebaseCore
import FirebaseAuth
import FirebaseFirestore
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
return true
}
}
// AuthService.swift
class AuthService: ObservableObject {
@Published var user: User?
private var handle: AuthStateDidChangeListenerHandle?
init() {
handle = Auth.auth().addStateDidChangeListener { [weak self] _, user in
self?.user = user
}
}
func signIn(email: String, password: String) async throws {
try await Auth.auth().signIn(withEmail: email, password: password)
}
func signUp(email: String, password: String) async throws {
try await Auth.auth().createUser(withEmail: email, password: password)
}
func signOut() throws {
try Auth.auth().signOut()
}
}
// data/repository/PostRepository.kt
class PostRepository @Inject constructor(
private val firestore: FirebaseFirestore
) {
private val postsCollection = firestore.collection("posts")
fun observePosts(): Flow<List<Post>> = callbackFlow {
val listener = postsCollection
.orderBy("createdAt", Query.Direction.DESCENDING)
.addSnapshotListener { snapshot, error ->
if (error != null) {
close(error)
return@addSnapshotListener
}
val posts = snapshot?.documents?.mapNotNull { it.toObject<Post>() } ?: emptyList()
trySend(posts)
}
awaitClose { listener.remove() }
}
suspend fun createPost(post: Post): String {
val docRef = postsCollection.add(post).await()
return docRef.id
}
suspend fun updatePost(postId: String, updates: Map<String, Any>) {
postsCollection.document(postId).update(updates).await()
}
suspend fun deletePost(postId: String) {
postsCollection.document(postId).delete().await()
}
}
// firestore.rules
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
function isAuthenticated() {
return request.auth != null;
}
function isOwner(userId) {
return isAuthenticated() && request.auth.uid == userId;
}
match /users/{userId} {
allow read: if isAuthenticated();
allow write: if isOwner(userId);
}
match /posts/{postId} {
allow read: if true;
allow create: if isAuthenticated()
&& request.resource.data.authorId == request.auth.uid;
allow update, delete: if isOwner(resource.data.authorId);
}
}
}
# Start emulators
firebase emulators:start
# Run with emulator in code
if ProcessInfo.processInfo.environment["USE_FIREBASE_EMULATOR"] == "YES" {
Auth.auth().useEmulator(withHost: "localhost", port: 9099)
Firestore.firestore().useEmulator(withHost: "localhost", port: 8080)
Storage.storage().useEmulator(withHost: "localhost", port: 9199)
}
push-notifications - FCM integrationmobile-analytics - Firebase Analyticsmobile-security - Security patternsActivates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.