Apple プラットフォームの Firebase について理解する

Firebase で Apple アプリを開発しているときに、なじみのないコンセプトや Firebase 独自のコンセプトに直面することがあります。このページでは、このような質問への回答や、詳細を説明するリソースの紹介を行っています。

このページで扱っていないトピックについて不明点がある場合は、オンライン コミュニティをご覧ください。また、定期的に新しいトピックを追加していますので、このページをチェックして最新情報をご確認ください。

プラットフォーム別の Firebase ライブラリ サポート

次の表に、Apple プラットフォームと互換性がある Firebase ライブラリを示します。現時点では、visionOS と watchOS はコミュニティでのみサポートされています。インストール手順と既知の問題については、Firebase Apple プラットフォーム SDK の GitHub リポジトリをご覧ください。

ライブラリ iOS macOS Mac
Catalyst
tvOS visionOS watchOS
A/B Testing
Analytics v8.9.0+ v8.9.0+ v8.9.0+
Analytics(広告 ID なし) v8.9.0+ v8.9.0+ v8.9.0+
Analytics オンデバイス コンバージョン
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 partial
Cloud Firestore ソース ディストリビューションのみ
Cloud Functions
Cloud Messaging
Cloud Storage
Crashlytics
Dynamic Links
Firebase のインストール
Firebase ML モデル ダウンローダー
In-App Messaging
Performance Monitoring
Realtime Database
Remote Config
Vertex AI in Firebase iOS 15 以降 macOS 12 以降 Catalyst 15 以降 tvOS 15 以降(コミュニティ サポートのみ) watchOS 8 以降

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 言語固有の機能を使用できるようにします。これらの API は、メイン ライブラリに直接追加されているため、個別に含める必要はありません。以前にコードベースで Swift 拡張機能 SDK を使用していた場合は、移行ガイドのアップグレード手順をご覧ください。

SwiftUI

Firebase は SwiftUI を完全にサポートしていますが、完全な SwiftUI 環境で Firebase を正しく機能させるためには、セットアップが UIKit アプリと少し異なります。詳細については、Peter Friese によるこちらのブログ投稿をご覧ください。

既知の問題のため、SwiftUI アプリケーションは実装入れ替えを無効にする必要があります。詳しくは、アプリ デリゲートの実装入れ替えセクションをご覧ください。

アプリ デリゲートの実装入れ替え

Firebase はアプリのアプリ デリゲート クラスにある一部のメソッドを入れ替えて、特定の Firebase サービスを FCM や APN トークンなどの OS コールバックに自動的に接続します。アプリで実装入れ替えを無効にするには、アプリの Info.plist ファイルにフラグ FirebaseAppDelegateProxyEnabled を追加し、これを NO に設定します。

アプリ デリゲートの実装入れ替えを使用する Firebase プロダクトには、AnalyticsApp DistributionAuthenticationFCM の 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(Analytics を除く)はすべて、一般公開されている Firebase GitHub リポジトリでオープンソース ライブラリとして開発されています。

FirebaseUI

FirebaseUI は、Cloud FirestoreRealtime Database 用の認証とデータ ユーティリティ用のドロップイン UI フローを含む、Firebase 上に構築されたユーティリティ ライブラリのセットです。FirebaseUI の詳細については、GitHub ページをご覧ください。

クイックスタート サンプル

Firebase には、iOS の Firebase API のほとんどのクイックスタート サンプルのコレクションがあります。これらのクイックスタートは、一般公開されている Firebase GitHub クイックスタート リポジトリで確認できます。

Xcode で各クイックスタートを開き、モバイル デバイスまたはシミュレータで実行できます。また、Firebase SDK を使用するためのサンプルコードとして、このクイックスタートを使用することもできます。