Firebase Realtime Database はクラウドでホストされるデータベースです。データは JSON として保存され、接続されているすべてのクライアントとリアルタイムに同期されます。Android、iOS、JavaScript SDK を使用してクロスプラットフォーム アプリを構築すると、すべてのクライアントによって 1 つの Realtime Database インスタンスが共有され、最新のデータによる更新が自動的に受信されます。
Firebase Realtime Database は、iOS、macOS、macOS Catalyst、tvOS、watchOS など、すべての Apple プラットフォームで利用できます。App Clips では使用できません。このページでは iOS の場合を例に挙げて設定手順を説明していますが、その他の Apple プラットフォームを使用した場合でも手順は同じです。
前提条件
- Firebase SDK をインストールします。
- Firebase コンソールでアプリを Firebase プロジェクトに追加します。
データベースを作成する
Firebase コンソールの [Realtime Database] セクションに移動します。既存の Firebase プロジェクトを選択するよう求められます。データベース作成ワークフローに従います。
Firebase Security Rules の開始モードを選択します。
- テストモード
モバイルおよびウェブ クライアント ライブラリを使用する場合に適していますが、すべてのユーザーがデータを読み取り、上書きできます。テストが終わったら、Firebase Realtime Database セキュリティ ルールを理解するを確認してください。
Web SDK、Apple SDK、Android SDK を使用する場合は、テストモードを選択します。
- ロックモード
モバイルおよびウェブ クライアントからのすべての読み書きを拒否します。認証されたアプリケーション サーバーは引き続きデータベースにアクセスできます。
データベースのロケーションを選択します。
データベースのロケーションに応じて、新しいデータベースの URL は次のいずれかの形式になります。
(DATABASE_NAME.firebaseio.com
us-central1
のデータベースの場合) (他のすべてのロケーションのデータベースの場合)DATABASE_NAME.REGION.firebasedatabase.app
[完了] をクリックします。
Realtime Database を有効にすると、Cloud API Manager で API も有効になります。
Firebase Realtime Database をアプリに追加します。
Swift Package Manager を使用して Firebase の依存関係のインストールと管理を行います。
- Xcode でアプリのプロジェクトを開いたまま、[File] > [Add Packages] の順に移動します。
- プロンプトが表示されたら、Firebase Apple プラットフォーム SDK リポジトリを追加します。
- Realtime Database ライブラリを選択します。
- ターゲットのビルド設定の [Other Linker Flags] セクションに
-ObjC
フラグを追加します。 - 上記の作業が完了すると、Xcode は依存関係の解決とバックグラウンドでのダウンロードを自動的に開始します。
https://github.com/firebase/firebase-ios-sdk.git
Realtime Database Security Rules の設定
Realtime Database には宣言型のルール言語が用意されているため、データの構造化方法、インデックスの作成方法、データの書き込みと読み取りの許可を定義できます。
Firebase Realtime Databaseを設定
Firebase アプリの参照を作成または使用する前に、Firebase を初期化する必要があります。他の Firebase 機能ですでに初期化を行っている場合は、この手順をスキップできます。
UIApplicationDelegate
にFirebaseCore
モジュールと、アプリのデリゲートが使用する他の Firebase モジュールをインポートします。たとえば、Cloud Firestore、Authentication を使用するには、次のように指定します。SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- アプリ デリゲートの
application(_:didFinishLaunchingWithOptions:)
メソッドで、FirebaseApp
共有インスタンスを構成します。SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- SwiftUI を使用している場合は、アプリケーション デリゲートを作成し、
UIApplicationDelegateAdaptor
またはNSApplicationDelegateAdaptor
を介してApp
構造体に接続する必要があります。また、アプリ デリゲートのメソッドの実装入れ替えを無効にする必要があります。詳細については、SwiftUI の手順をご覧ください。SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
- データベースの参照を作成し、書き込み先のロケーションを指定します。
Swift
注: この Firebase プロダクトは、App Clip ターゲットでは使用できません。var ref: DatabaseReference! ref = Database.database().reference()
Objective-C
注: この Firebase プロダクトは、App Clip ターゲットでは使用できません。@property (strong, nonatomic) FIRDatabaseReference *ref; self.ref = [[FIRDatabase database] reference];
次のステップ
Realtime Database のデータを構造化する方法を学習する。
アプリを起動する準備をする。
App Check を有効にして、自身のアプリだけがデータベースにアクセスできるようにする。
Google Cloud コンソールでプロジェクトの予算アラートを設定する。
Firebase コンソールの [使用量と請求額] ダッシュボードをモニタリングして、複数の Firebase サービスを通じたプロジェクトの全体的な使用状況を確認する。 使用状況の詳しい情報を確認するには、Realtime Database 使用状況ダッシュボードをご利用ください。
Firebase リリース チェックリストを確認する。