前回制作したアプリでは、Realmを用いてデータの保存処理を行なっていました。
しかし、端末内に保存されるため、アプリを削除すると、データも共に消えてしまいます。
そのため、今回はFirebaseのCloud Firestoreというものを使って、データの保存処理について実装します。そこで学習したことを簡単にまとめていきます。
概要
- モバイル開発、ウェブ、サーバー開発に対応したデータベース
- 階層データ構造に対応
- リアルタイムアップデート
- オフラインサポート(オフラインでもキャッシュから読み書き可能)
詳細は公式ドキュメント参照
開発環境:Xcode (Ver.13.4.1)、SwiftUI
実装について(Firestore自体の設定は省略。基本的に手順通りに進める)
- Firebaseにアクセスし、プロジェクトを作成。
- iOSアプリを選択し、アプリの登録を行う。
- バンドルIDはXcodeにて確認できます。
(アプリプロジェクトファイル選択 >TARGETSのプロジェクト選択
>General >Bundle Identifier) - 設定ファイルをダウンロードし、Xcodeにドラックアンドドロップで追加する。
(Copy items if neededにチェックを入れること) - Firebase SDKの追加
CocoaPodsやSPM(Swift Package Manager)にてインストールします。
私は、SPMにて導入しました。導入方法は以下の通りです。
XcodeのFile>Add Packagesを選択し、右上の検索窓に、
「https://github.com/firebase/firebase-ios-sdk.git」を入力し、必要なライブラリを導入する。
ただしここが一番の躓きポイントでした・・・
様々なサイトや書籍を参考にしたものの、どれを導入すべきか、明記しているものがなく、記載通りではエラーが出るなどして、かなり導入に時間を要しました。
肝心のところを・・・覚えてません。思い出し次第追記します。 - 初期化コードの追加
SwiftUIの場合の導入については、公式ドキュメントに記載がないので、他の方の記事を参考に記述しました。というか、Firebase公式ドキュメント、何事もざっくりしか書かれておらず、これだけでは初学者には実装困難です。
AppDelegate.swiftファイルはないため、プロジェクト名.swiftに以下を追記します。
・import Firebase
・class AppDelegate内のfunc application(~)内に FirebaseApp.configure() - 次にまたウェブに戻り、Cloud Firestore(Firestore Database)を選択し、ルールの設定などを行う。
allow read, write: if true; tureにすることで、アクセス可能になります。 - ここからは、データの書き込みが行われているかの確認手順ですが、続きは後日・・・?