【Swift】Firebaseを使ったiOSアプリの開発〜データベース〜
今回はいよいよデータベースにデータを保存する方法をみて行きたいと思います。
以前の2回分はこちらから見てみてください。
turedureengineer.hatenablog.com
turedureengineer.hatenablog.com
Firebaseにはデータベースの種類が二つあります。
「Cloud Firestore 」と「Realtime Database」があります。
違いが知りたい人はリンクを貼っておくので見てみてください。
データベースを選択: Cloud Firestore または Realtime Database | Firebase
データベースというとSQLがよく使われますがFirebaseのRealtime Databaseではjson形式で保存して行きます。
百聞は一見に如かずということで見て行きましょう。
Firebaseの設定
まずコンソール画面に移動して、左側からDatabaseを選択します。
下の方にスクロールしていくとこのような画面が出てきます。
データベースを作成というところをクリックしましょう。
練習として使うのでテストモードで構いません。
データの保存
//保存するデータ let values = ["name": "徒然エンジニア", "email": "abc@gmail.com"] Database.database().reference().child("person").updateChildValues(values, withCompletionBlock: { (error, reference) in //エラー処理 if error != nil{ print(error!) return } //成功した時 })
保存するデータは上のようにDictionary型にします。
エラー処理は書いておくとエラーの内容もわかるので書いておきましょう。
こうすると下のようにデータが保存されています。
データの削除
これも簡単です。
Database.database().reference().child("person").child("email").removeValue()
こうすることでメールアドレスのデータを消すことができます。
中をのぞいてみると以下のようになっています。
しっかり消えてますね。
データの読み取り
読み取りは少しだけ複雑かもしれません。
データはDatasnapshot型の変数snapshotの中に入っています。
まずはこれをdictionary型に変換します。
そしてキーをもとに取り出します。
Database.database().reference().child("person").observeSingleEvent(of: .value, with:{(snapshot) in if let data = snapshot.value as? [String:AnyObject]{ let name = data["name"] as? String let email = data["email"] as? String print(name!) print(email!) } }, withCancel: nil)