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 | 日本語
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 -
@FirestoreModelsupportssnakeCaseconversion and@Fieldcustom 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)
- FirestoreServer - Firestore REST API client
- FirestoreSchema - Type-safe schema DSL
- FirebaseStorageServer - Cloud Storage client
- FirebaseStorageSchema - Type-safe Storage schema DSL
- FirebaseAuthServer - ID token verification
Technical Reference
- Swift Macro Reference - Comprehensive macro reference
Requirements
- macOS 14+
- Swift 6.2+
- Xcode 16+
License
MIT License - See LICENSE for details
For Developers
- Release Process: Release Process Guide
Support
Made with love by NOPROBLEM
同じカテゴリの OSS — 通信 / サーバー
swift-api-client
Swift Packageasync/await 対応の軽量 HTTP クライアント。型安全な API 通信を Swift で
Swift
· 通信 / サーバーhttp-clientasync-awaitnetworking
swift-api-contract
Swift PackageSwift マクロで型安全な API 契約を定義する
Swift
· 通信 / サーバーswift-macroapitype-safe
swift-api-server
Swift PackageVapor を抽象化し、アプリケーションコードをフレームワーク実装から独立させるサーバー層
Swift
· 通信 / サーバーservervaporbackend
swift-http-transport
Swift PackageURLSession をプロトコル背後に隠し、リトライ / レート制限 / SSE を一元化する通信基盤
Swift
· 通信 / サーバーhttpurlsessionsse
swift-persistence
Swift PackageKeyValue / Secure / Document / Registry を束ねるプロトコル指向の永続化抽象レイヤー
Swift
· 通信 / サーバーpersistencekeyvaluestorage