前書き
Firebaseを使用したアプリを作成したので、今後Firebaseを使用したプロジェクトの導入をスムーズにするために導入方法をメモしました。
Realtime Database と Cloud Firestoreのデータベース作成方法と使用方法についても後半で説明しています。
① プロジェクトの作成手順
1. Firebaseコンソールにアクセスしてプロジェクトを作成を押下
2. プロジェクトの作成
プロジェクト名に任意のプロジェクト名を入力
続行ボタンを押下

3. アナリティクスの構成
アナリティクスの地域を日本に設定
データ共有の設定と Googleアナリティクスの利用規約に全チェック
プロジェクトを作成ボタンを押下

4. 作成完了
② アプリの追加
1. iOSアプリにFirebaseを使用するための設定ファイルを導入する
2. iOSアプリにFirebaseを追加する
1. iOSバンドルIDにFirebaseを追加するiOSアプリのバンドルIDを記入
アプリのニックネーム App Store IDは省略可能です
入力し終えたらアプリを登録ボタンを押下

2. GoogleService-info.plistをダウンロードしてプロジェクトのルートフォルダにコピーします。
コピーしたら次へボタンを押下

3. 表示されている手順通りにFirebase SDKをCocoaPods経由でインストールします。
導入が完了したら次へボタンを押下

4. Swiftを選択。
iOSアプリ側でAppDelegate.swiftを開き。下記の2箇所を追記する。
記入したら次へボタンを押下。

5. アプリ起動して疎通確認してみましょう。
③ Realtime Databaseでデータベースを作成
2. Realtime Databaseを選択して、データベースを作成ボタンを押下

4. ルールからread write をtrueにして、公開ボタンを押下

5. Realtime Databaseを使用するためのSDKをCocoaPod経由でインストールする
pod 'Firebase/Database'
6. ViewController.Swiftに下記のコードをコピペしてアプリを実行する
import UIKit
import FirebaseDatabase
class ViewController: UIViewController {
var databaseRef: DatabaseReference!
override func viewDidLoad() {
super.viewDidLoad()
// Firebaseの共有インスタンスを取得
databaseRef = Database.database().reference()
// データ保存処理後のコールバック関数
let resultCallback = { (error: Error?, ref: DatabaseReference) -> () in
print(#function)
}
// データ保存
self.databaseRef.child("Root").childByAutoId().setValue("TestValue", withCompletionBlock: resultCallback)
}
}
7. Realtime Databaseのコンソールを確認すると、データが保存されていることが確認できます。

④ Cloud Firestoreでデータベースを作成
2. Cloud Firestoreを選択して、データベースの作成ボタンを押下

4. Cloud Firestoreからnam5(us-central) を選択して、有効にするボタンを押下

5. ルールからread write をtrueにして、公開ボタンを押下

6. Cloud Firestoreを使用するためのSDKをCocoaPod経由でインストールする
pod 'Firebase/Firestore'
8. コレクションIDにusersと入力して次へボタンを押下

9. 下記の内容を入力して保存ボタンを押下
ドキュメントID: user_data
フィールド: name
タイプ: string
値: テストユーザー

10. ViewController.swift に下記のコードをコピペして実行すると、コンソールにユーザー名が出力されます
import UIKit
import FirebaseFirestore
class ViewController: UIViewController {
// Firestoreの共有インスタンス
var databaseStore: Firestore!
override func viewDidLoad() {
super.viewDidLoad()
// Firestore共有インスタンス
self.databaseStore = Firestore.firestore()
// usersコレクションからデータを取得
databaseStore.collection("users").document("user_data").getDocument{ (document, error) in
if let document = document {
if let data = document.data() {
// ユーザー名を取得
let name: String = (data["name"] as? String)!
print(name)
}
} else {
print("error")
}
}
}
}











