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++のライブラリ開発が現在のメイン。趣味はテニス。3児の父。 もっと詳しく

コメントを残す

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

CAPTCHA