【SwiftUI】Firebase/Firestoreを用いたデータ保存
はじめに
本記事の内容は、前回の記事「 【SwiftUI】Firebaseの導入 - nekoyutanekoのブログ 」の続きです。
Firestoreの導入
Podfileに新しくインストールするライブラリを追記します。 今回は「Firebase/Firestore」を追記します。
Pods/Podfile
pod 'Firebase/Analytics' pod 'Firebase/Firestore' // 左記を追加
記述を終えたら、ターミナル上でアプリケーションが格納されているディレクトリに移動したのち、 以下のコマンドを実行してください。
% pod update
データベースの作成
「 Firebase 」 のメニューから「Firestore Database」を選択して、 「データベースの作成」をクリックしてください。
① セキュリティ保護ルールの設定
今回は「テストモードで開始する」を選択します。
<注意点!>
この設定は「すべてのユーザーに対する読み取りと書き込みのアクセス権を可能にしている」ので、セキュリティ上安全ではありません。
そのため、 必ず アプリケーションの使用状況・方法に合わせて、セキュリティの設定を変更するようにしてください。
参考URL:https://firebase.google.com/docs/firestore/security/insecure-rules?hl=ja
② ロケーションの設定
今回は「asia-northeast1(東京)」を選択します。
参考URL:https://firebase.google.com/docs/firestore/locations?hl=ja
選択後、右下の「有効にする」をクリックすると、
データベースの作成が始まります。
作成が完了すると、以下の画面になります。
データの保存
TestFirebase/ContentView.swift
import SwiftUI struct ContentView: View { @ObservedObject var testDataVM = DataModel() var body: some View { Button(action: { testDataVM.addData(country: "日本", prefecture: "東京都") }) { Text("データ保存の実行") } } }
TestFirebase/DataModel.swift
import Foundation import Firebase class DataModel: ObservableObject { func addData(country: String, prefecture: String) { let data = [ "country": country, "prefecture": prefecture ] let db = Firestore.firestore() db.collection("testDatas").addDocument(data: data) { error in if let error = error { print("データの保存に失敗しました。\(error)") return } print("データの保存に成功しました。") } } }
addDocumentメソッドにより、データを保存します。
データの保存に成功すると、Firestore Databaseにデータが追加されます。