Back to OSS
Swift Package 通信 / サーバー

swift-firebase-server

サーバーサイド Swift 向けの Firestore REST API クライアント

Swift
firebasefirestoreserver

swift-firebase-server

Firebase REST API client for server-side Swift (Firestore & Cloud Storage & Auth)

English | 日本語

Swift Platforms License

What You Can Do

  • Firestore document CRUD operations
  • Cloud Storage file upload & download
  • Firebase Auth ID token verification
  • Type-safe collection path generation
  • Declarative query building

Features

  • Swift Macro DSL - Type-safe schema and model definitions with @FirestoreSchema, @Collection, @FirestoreModel
  • Auto-generated CodingKeys - @FirestoreModel supports snakeCase conversion and @Field custom keys
  • Native REST API - Direct access from server-side Swift without Firebase Admin SDK
  • FilterBuilder DSL - Declarative query syntax with Result Builders

Quick Start

import FirestoreServer
import FirestoreSchema

@FirestoreModel(keyStrategy: .snakeCase)
struct User {
    let id: String
    let displayName: String
    let email: String
}

@FirestoreSchema
struct Schema {
    @Collection("users", model: User.self)
    enum Users {
        @Collection("posts", model: Post.self)
        enum Posts {}
    }
}

// Cloud Run / local gcloud auto-detection
let client = try await FirestoreClient(.auto)
let schema = Schema(client: client)

// Get document (type inference works)
let user = try await schema.users.document("user123").get()

// Create document
try await schema.users.document("user123").create(data: newUser)

// Execute query
let activeUsers = try await schema.users.execute(
    schema.users.query().filter { Field("status") == "active" }
)

Installation

// Package.swift
dependencies: [
    .package(url: "https://github.com/no-problem-dev/swift-firebase-server.git", .upToNextMajor(from: "1.0.17"))
]

.target(
    name: "YourApp",
    dependencies: [
        .product(name: "FirestoreServer", package: "swift-firebase-server"),
        .product(name: "FirestoreSchema", package: "swift-firebase-server"),
        .product(name: "FirebaseStorageServer", package: "swift-firebase-server"),
        .product(name: "FirebaseStorageSchema", package: "swift-firebase-server"),
        .product(name: "FirebaseAuthServer", package: "swift-firebase-server"),
    ]
)

Documentation

Usage Guides

Guide Description
Getting Started Setup and quick start
Firestore Document Operations CRUD operations
Firestore Queries Filters, sorting, pagination
Firestore Schema Definition @FirestoreSchema macro
Firestore Model Definition @FirestoreModel macro
Storage File Operations Upload & download
Storage Schema Definition @StorageSchema macro
Auth Token Verification ID token verification

API Reference (DocC)

Technical Reference

Requirements

  • macOS 14+
  • Swift 6.2+
  • Xcode 16+

License

MIT License - See LICENSE for details

For Developers

Support


Made with love by NOPROBLEM

同じカテゴリの OSS — 通信 / サーバー

swift-api-client

Swift Package

async/await 対応の軽量 HTTP クライアント。型安全な API 通信を Swift で

Swift
· 通信 / サーバー
http-clientasync-awaitnetworking

swift-api-contract

Swift Package

Swift マクロで型安全な API 契約を定義する

Swift
· 通信 / サーバー
swift-macroapitype-safe

swift-api-server

Swift Package

Vapor を抽象化し、アプリケーションコードをフレームワーク実装から独立させるサーバー層

Swift
· 通信 / サーバー
servervaporbackend

swift-http-transport

Swift Package

URLSession をプロトコル背後に隠し、リトライ / レート制限 / SSE を一元化する通信基盤

Swift
· 通信 / サーバー
httpurlsessionsse

swift-persistence

Swift Package

KeyValue / Secure / Document / Registry を束ねるプロトコル指向の永続化抽象レイヤー

Swift
· 通信 / サーバー
persistencekeyvaluestorage

© 2026 Kyoichi Taniguchi. All rights reserved.