Firebase でチャットを作ってみた(iOS) その2 リアルタイムデータベースでチャット本体を作る

その1で最も基本的な Firebaseの設定は行ったので、続いてチャット本体を作りたい思います。 チャット本体はリアルタイムデータベースという Firebase のシステムを使います。

1. CocoaPods でデータベースを追加

Podfile に以下を追加 pod install でインストール

2. 画面作成

かなり適当ですが画面を作成します。 トーク画面 ViewController に各パーツを Outlet で接続します。

3. データベース初期設定

import FirebaseDatabase を追加し、FIRDatabase.database().reference() でデータベースへの参照を取得しておきます。viewDidLoad で最初に取得しておけばよいかと思います。

4. データベースの読み書き権限の設定

Firebase コンソールから、データベースの読み書き制限を解除しておきます。 これをしておかないと、移行のデータベースアクセス時に下記のようなメッセージが出力されてデータベースへのアクセスが失敗します。 とりあえず一時的に無制限で読み書き OK にしておきます。 Firebase コンソールから、Database => ルールで下記のようにルールを設定します。

5. データベース更新(自分 -> 相手へのメッセージ受信)

チャットでいうところの、メッセージ送信の動作を実装します。 送信ボタンタップ時に、UITextFieldからテキストを取得し、データベースを更新します。

6. データベース更新の監視(相手 -> 自分へのメッセージ受信)

チャットでいうところの、メッセージ受信の動作を実装します。 データベースを監視して、変更があればそれをテキストビューに表示するようにします。 以下のような感じです。

できたソースコード

たったこれだけです。 超単純なチャットであれば、 送信はdatabase.childByAutoId().setValue(chunk)、受信の監視は database.observe(.childAdded, with: block) だけです。 非常に簡単ですね。
最後まで読んでいただきありがとうございます。 このブログを「いいな」と感じていただけましたら、Twiter にてフォローいただけるとうれしいです。ブログ更新情報などもお届けします。



りゅーた
フリーランスのエンジニアしてます。Android、iOS アプリの開発、対向サーバの開発、C/C++のライブラリ開発が現在のメイン。趣味はテニス・ゲーム・自転車。2児の父

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA