【Swift】Firebase Realtime Database を用いてチャットアプリを爆速コーディングしてみた。
こちらを参考にチャットアプリを作成しました。
細かいデザインに関してはガン無視して、とりあえず動くものを作って、Firebaseを理解しようというものです。
自分なりの理解をコメントに入れています。
sample.swift
import UIKit
import FirebaseDatabase
class ViewController: UIViewController {
@IBOutlet weak var textView: UITextView!
@IBOutlet weak var nameInputView: UITextField!
@IBOutlet weak var messageInputView: UITextField!
//Databaseのインスタンス作成
var databaseRef: DatabaseReference!
override func viewDidLoad() {
super.viewDidLoad()
//Databaseのインスタンス作成
databaseRef = Database.database().reference()
//databaseRef.observe(.childAdded, with: { snapshot in〜~}でイベントを表示させる
databaseRef.observe(.childAdded, with: { snapshot in
if let obj = snapshot.value as? [String : AnyObject], let name = obj["name"] as? String, let message = obj["message"] {
//currentTextを定義
let currentText = self.textView.text
//textViewにcurrentTextを表示
self.textView.text = (currentText ?? "") + "\n\(name) : \(message)"
}
})
}
@IBAction func tappedSendButton(_ sender: Any) {
//ボタンを押した時に、UITextField2つに入力されている値を送信します。
view.endEditing(true)
//nameInputViewとmessageInputViewに値がある場合のif文
if let name = nameInputView.text, let message = messageInputView.text {
//messageDataを定義
let messageData = ["name": name, "message": message]
//databaseに保存
databaseRef.childByAutoId().setValue(messageData)
//text欄を空欄にする
messageInputView.text = ""
}
}
}
動いた!Firebaseにもデータ保存できている!
Firebaseでデータ保存できたぜ!
— 中村幹 (@nakamurasssey) November 17, 2019
一人のチャットアプリ完成したぜ!
無限に自分と語り合える! pic.twitter.com/4kY5zWSr7V
GitHubはこちら