Back to OSS

swift-firebase-server

Firestore REST API client for server-side Swift

Swift
firebasefirestoreserver

swift-firebase-server

サーバーサイドSwift向けFirebase REST APIクライアント(Firestore & Cloud Storage & Auth)

🌐 English | 日本語

Swift Platforms License

できること

  • Firestore のドキュメント CRUD 操作
  • Cloud Storage のファイルアップロード・ダウンロード
  • Firebase Auth の ID トークン検証
  • 型安全なコレクションパス生成
  • 宣言的なクエリ構築

特徴

  • Swift Macro DSL - @FirestoreSchema@Collection@FirestoreModel で型安全なスキーマとモデルを定義
  • CodingKeys 自動生成 - @FirestoreModelsnakeCase 変換や @Field カスタムキーに対応
  • REST API ネイティブ - Firebase Admin SDK 不要、サーバーサイド Swift から直接アクセス
  • FilterBuilder DSL - Result Builder による宣言的なクエリ構文

クイックスタート

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 / ローカル gcloud 自動検出
let client = try await FirestoreClient(.auto)
let schema = Schema(client: client)

// ドキュメント取得(型推論が効く)
let user = try await schema.users.document("user123").get()

// ドキュメント作成
try await schema.users.document("user123").create(data: newUser)

// クエリ実行
let activeUsers = try await schema.users.execute(
    schema.users.query().filter { Field("status") == "active" }
)

インストール

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

.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"),
    ]
)

ドキュメント

📖 使用ガイド

ガイド 説明
はじめに 環境構築とクイックスタート
Firestore ドキュメント操作 CRUD操作
Firestore クエリ フィルター、ソート、ページネーション
Firestore スキーマ定義 @FirestoreSchema マクロ
Firestore モデル定義 @FirestoreModel マクロ
Storage ファイル操作 アップロード・ダウンロード
Storage スキーマ定義 @StorageSchema マクロ
Auth トークン検証 IDトークン検証

📚 APIリファレンス(DocC)

🔧 技術リファレンス

要件

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

ライセンス

MIT License - 詳細は LICENSE を参照

開発者向け情報

サポート


Made with ❤️ by NOPROBLEM

© 2026 Kyoichi Taniguchi. All rights reserved.