Xcodeで新規プロジェクトを作成しよう
Create a new Xcode project -> SingleViewApp の順で新規プロジェクトを作成する。
UserInterfaceはStoryBoardにしておきましょう。
Firebaseのプロジェクトを作成しよう
Firebaseに下記のURLからGoogleアカウントでログインします。
Firebase
ログインできたら「プロジェクトを追加」ボタンでプロジェクトを追加しましょう。
Firebaseの設定をしよう
プロジェクトのコンソール画面からアプリを追加することができます。
今回は「iOS」を選択しましょう。
アプリのBundleIDを入力します。アプリ名は適当で良いです。
設定ファイルをダウンロードして、Xcodeプロジェクトに追加します。
その後プロジェクトフォルダまで移動して、ターミナルから、下記コマンドを打ちましょう。
pod init
CocoaPodsをインストールしていない方は、インストールしてから行ってください。
こちらが参考になります。CocoaPodsを導入してみた - Qiita
今回はRealTimeDatabase を使用するので、Podファイルに、以下の文言を追加しましょう。
pod 'Firebase/Core'
pod 'Firebase/Database'
ターミナルから、下記コマンドでSDKをインストールしましょう。
pod install
インストールが完了したら、白いプロジェクトファイルが出来上がっていると思いますので、Xcodeで開きます。
AppDelegeteファイルに、画像のように追記します。![スクリーンショット 2019-12-03 15.22.18.png]
データベースを作成しよう
左のタブのDataBaseを選択し、RealTimeDatabaseを選択します。
今回はテストモードで開始しましょう。
これで準備完了です!
データベースに対して操作してみよう
データを追加してみよう
viewDidLoad に以下のように書いて実行します。
override func viewDidLoad() {
super.viewDidLoad()
let ref = Database.database().reference()
// KeyValue型の配列を用意しておきます。
let user = ["name":"Tarou Yamada", "age":"20", "favorite":"jogging"]
// データを追加します。idは自動で設定してくれます。
ref.child("Users").childByAutoId().setValue(user)
}
Firebaseのコンソール画面に移動すると、データが追加されているのが確認できます!
データを更新してみよう
先程のデータを更新します。
override func viewDidLoad() {
super.viewDidLoad()
let ref = Database.database().reference()
// 先程のIDを指定します。(人によって変わるので、自分のDatabaseからコピペしてね)
let id = "-Lv9asdz8vsqeZSZQdyh"
// 先程のIDを指定してデータを上書きします。
ref.child("Users/\(id)/name").setValue("名無しの権兵衛")
}
データを削除してみよう
先程のデータを削除します。
override func viewDidLoad() {
super.viewDidLoad()
let ref = Database.database().reference()
// 先程のIDを指定します。(人によって変わるので、自分のDatabaseからコピペしてね)
let id = "-Lv9asdz8vsqeZSZQdyh"
// 先程のIDを指定してデータを削除します。
ref.child("Users/\(id)").removeValue()
}
データを取得してみよう
サンプルデータを作ろう
FireBaseのコンソール画面で、データを直接編集することができます。
めんどくさい人は、下記のJSONをファイルにして、FireBaseのインポートしましょう。
{
"Users" : {
"-Lv4cGsQbS3cXDLTErXS" : {
"age" : "18",
"favoriteFood" : "クッキー",
"name" : "田中 花子"
},
"-Lv8Lrf3ii9bB5p6rcIc" : {
"age" : "22",
"favoriteFood" : "牛丼",
"name" : "山田 太郎"
},
"-Lv8gSwpG-ZkEbPsbORu" : {
"age" : "13",
"favoriteFood" : "たこ焼き",
"name" : "木村 正人"
},
"-Lv8vAUr79kcpoygkpDl" : {
"age" : "26",
"favoriteFood" : "寿司",
"name" : "川上 純子"
}
}
}
サンプルデータを取得してみよう
下記コードで、Xcodeのコンソールに取得結果が表示されます。
override func viewDidLoad() {
super.viewDidLoad()
let ref = Database.database().reference()
// データの変更を監視(observe)してるため、変更されればリアルタイムで実行されます。
ref.child("Users").observe(.value) { (snapshot) in
// Users直下のデータの数だけ繰り返す。
for data in snapshot.children {
let snapData = data as! DataSnapshot
// Dictionary型にキャスト
let user = snapData.value as! [String: Any]
print(user)
}
}
}
まとめ
環境の設定から、CRUDの基本的なところまでは押さえられたはず。 次はFirebaseを使って簡単なアプリを作ってみたい。