Firebase で Apple アプリを開発しているときに、なじみのないコンセプトや Firebase 独自のコンセプトに直面することがあります。このページでは、このような質問への回答や、詳細を説明するリソースの紹介を行っています。
このページで扱っていないトピックについて不明点がある場合は、オンライン コミュニティをご覧ください。また、定期的に新しいトピックを追加していますので、このページをチェックして最新情報をご確認ください。
プラットフォーム別の Firebase ライブラリ サポート
次の表に、Apple プラットフォームと互換性がある Firebase ライブラリを示します。現在のところ、watchOS に対してはコミュニティによるサポートのみが提供されています。インストール手順と既知の問題については、Firebase Apple プラットフォーム SDK の GitHub リポジトリをご覧ください。
ライブラリ | iOS | macOS | Mac Catalyst |
tvOS | watchOS |
---|---|---|---|---|---|
A/B テスト | |||||
アナリティクス | v8.9.0+ | v8.9.0+ | v8.9.0+ | ||
アナリティクス(広告 ID なし) | v8.9.0+ | v8.9.0+ | v8.9.0+ | ||
アナリティクスのオンデバイス コンバージョン | |||||
App Check DeviceCheck プロバイダ | watchOS 9 以降 | ||||
App Check App Attest プロバイダ | iOS 14 以降 | macOS 11 以降 | Catalyst 14 以降 | tvOS 15 以降 | watchOS 9 以降 |
App Check のカスタム プロバイダとデバッグ プロバイダ | |||||
App Distribution | |||||
Authentication | partial | partial | partial | partial | |
Cloud Firestore | |||||
Cloud Functions | |||||
Cloud Messaging | |||||
Cloud Storage | |||||
Crashlytics | |||||
Dynamic Links | |||||
Firebase インストール | |||||
Firebase ML モデル ダウンローダー | |||||
アプリ内メッセージング | |||||
Performance Monitoring | |||||
Realtime Database | |||||
Remote Config |
App Clip
ほとんどの Firebase ライブラリは、App Clip ターゲットでビルドおよび実行されますが、その多くが、OS の制限によって制限されています。次のような既知の問題があります。
- Dynamic Links は、アプリがインストールされていないと、ユーザーがリンクをタップしても、ユーザーを App Clip に送れません。
- Firestore と Realtime Database は、基盤となる CFStream 依存関係が原因で App Clip でデータを読み込むことができません。
App Clip に関する既知の問題の一覧については、Firebase GitHub リポジトリをご覧ください。
GoogleService-Info.plist
Firebase を Apple プロジェクトに追加する一環として、プロジェクトに GoogleService-Info.plist
構成ファイルを追加する必要があります。1 つのアプリで複数の Firebase プロジェクトを使用する場合は、複数のプロジェクトの構成のドキュメントをご覧ください。
Firebase アプリの初期化プロセスの詳細については、Swift リファレンス ドキュメントをご覧ください。
Swift Package Manager
Swift Package Manager の統合の詳細については、こちらのガイドをご覧ください。
Swift 拡張機能
Firebase Apple プラットフォーム SDK Swift 拡張機能は、既存の Firebase Apple プラットフォーム ライブラリの小さなオープンソースのアドオンであり、コードで Swift 言語固有の機能を使用できるようにします。
次の Swift 拡張フレームワークが提供されています。
FirebaseAnalyticsSwift
FirebaseDatabaseSwift
FirebaseFirestoreSwift
FirebaseInAppMessagingSwift
(ベータ版)FirebaseRemoteConfigSwift
Firebase 9.0 以降の一部の Firebase ライブラリ(Objective-C インターフェースを含む)は Swift で実装され、補助依存関係を含まない Swift ネイティブの機能が提供されます。次の SDK は、拡張 SDK を使用せずにネイティブの Swift API を提供します。
FirebaseFunctions
FirebaseStorage
Swift 拡張機能は、CocoaPods または Swift Package Manager のいずれかを使用してインストールできます。CocoaPods を使用して Swift 拡張機能をインストールするには、次のように Swift 拡張機能を Podfile に含めます。
pod 'FirebaseAnalyticsSwift', '~> 10.0'
pod 'FirebaseInAppMessagingSwift', '~> 10.0-beta'
pod 'FirebaseDatabaseSwift'
Swift Package Manager を使用して、必要な Swift 拡張機能ライブラリを Firebase Apple プラットフォーム SDK と同じリポジトリから直接インポートします。
SwiftUI
Firebase は SwiftUI を完全にサポートしていますが、完全な SwiftUI 環境で Firebase を正しく機能させるためには、セットアップが UIKit アプリと少し異なります。詳細については、Peter Friese によるこちらのブログ投稿をご覧ください。
既知の問題のため、SwiftUI アプリケーションは実装入れ替えを無効にする必要があります。詳しくは、アプリ デリゲートの実装入れ替えセクションをご覧ください。
アプリ デリゲートの実装入れ替え
Firebase はアプリのアプリ デリゲート クラスにある一部のメソッドを入れ替えて、特定の Firebase サービスを FCM や APN トークンなどの OS コールバックに自動的に接続します。アプリで実装入れ替えを無効にするには、アプリの Info.plist
ファイルにフラグ FirebaseAppDelegateProxyEnabled
を追加し、これを NO
に設定します。
アプリ デリゲートの実装入れ替えを使用する Firebase プロダクトには、アナリティクス、App Distribution、Authentication、FCM の 4 つがあります。アプリケーションで実装入れ替えを無効にし、次のいずれかのプロダクトを使用している場合は、実装入れ替えなしでプロダクトを使用する方法についてプロダクト固有のガイドをご覧ください。
iOS 14 のサポート
iOS 14 には、ユーザーの広告識別子関連のユーザー権限に関する新しい変更が含まれています。アプリが影響を受けるかどうかについて詳しくは、iOS 14 の準備ガイドをご覧ください。
Objective-C の継続的なサポート
Firebase では、Apple プラットフォームに関するドキュメントのメンテナンスを容易にするため、ガイドやその他のデベロッパー向け資料において、Swift スニペットとコードサンプルに注力することにしました。2024 年 1 月 1 日以降、Objective-C スニペットは各種ガイドから削除されます。Objective-C の最新のリファレンス ドキュメントは、すべての Firebase プロダクトで引き続きご利用いただけます。
Firebase Apple プラットフォーム SDK のオープンソース リソース
Firebase はオープンソース開発をサポートしているため、コミュニティへの貢献やフィードバックが推奨されています。
Firebase Apple プラットフォーム SDK
Apple プラットフォーム用の Firebase SDK(アナリティクスを除く)はすべて、一般公開されている Firebase GitHub リポジトリでオープンソース ライブラリとして開発されています。
FirebaseUI
FirebaseUI は、Cloud Firestore と Realtime Database 用の認証とデータ ユーティリティ用のドロップイン UI フローを含む、Firebase 上に構築されたユーティリティ ライブラリのセットです。FirebaseUI の詳細については、GitHub ページをご覧ください。
クイックスタート サンプル
Firebase には、iOS の Firebase API のほとんどのクイックスタート サンプルのコレクションがあります。これらのクイックスタートは、一般公開されている Firebase GitHub クイックスタート リポジトリで確認できます。
Xcode で各クイックスタートを開き、モバイル デバイスまたはシミュレータで実行できます。また、Firebase SDK を使用するためのサンプルコードとして、このクイックスタートを使用することもできます。