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 | 日本語
できること
- Firestore のドキュメント CRUD 操作
- Cloud Storage のファイルアップロード・ダウンロード
- Firebase Auth の ID トークン検証
- 型安全なコレクションパス生成
- 宣言的なクエリ構築
特徴
- Swift Macro DSL -
@FirestoreSchema、@Collection、@FirestoreModelで型安全なスキーマとモデルを定義 - CodingKeys 自動生成 -
@FirestoreModelでsnakeCase変換や@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)
- FirestoreServer - Firestore REST API クライアント
- FirestoreSchema - 型安全なスキーマ DSL
- FirebaseStorageServer - Cloud Storage クライアント
- FirebaseStorageSchema - 型安全な Storage スキーマ DSL
- FirebaseAuthServer - ID トークン検証
🔧 技術リファレンス
- Swift Macro リファレンス - マクロの包括的なリファレンス
要件
- macOS 14+
- Swift 6.2+
- Xcode 16+
ライセンス
MIT License - 詳細は LICENSE を参照
開発者向け情報
- 🚀 リリース作業: リリースプロセス
サポート
Made with ❤️ by NOPROBLEM