Angular でチャットアプリ制作#002
Angularでチャットアプリ制作#002
お久しぶりです
Angularでチャットアプリ制作内部構造について詳しく書いていきます。
チャットアプリの流れから
1、テキストを入力
2、テキストをファイアベースに送信
3、ファイアベースからテキストと書き込んだユーザ、時刻を取得
4、3で取得した内容をルームチャット内に表示
番外
★タイムラインに表示されたチャットを削除できる機能
★ルーム変更機能
★1で入力されたテキストが空白文字や1文字未満でないかのチェック
では番号順にソースコード見ていきます。
テキストを入力
HTML
Tsファイル
HTMLからテキストを取得後
1文字未満でないかの確認を挟んで
現在時刻の取得、
取得した時刻を正規表現を使って「/」を「x」に変換
(「/」が入っているとファイヤーベースで階層扱いになるみたいです。)
ログインユーザをグーグルのAPIを使って取得
今回はコメントアウトしていますが、ユーザ名以外にもいろいろなデータを取得できるようですね。
テキストをファイアベースに送信
取得したデータを組み立ててファイアベースへ送信
idを自動採番にしていると入力順ではなく、データベースに入っている順に表示されてしまいます。
そのため送信時にidを指定してあげます。
ファイアベースからテキストと書き込んだユーザ、時刻を取得
HTML
リストにngForを指定して取得したレコード文表示する。
TSファイル
ルーム機能の初期設定、THMLのroomsに入る。
後のitem.userなどはファイアベースと同じカラム名にして表示する。
存在しないカラム名を指定すると何も表示されない。
★その他機能
ルーム変更機能
HTML
ルームを変更するときに使う。
内部処理としてはファイアベース内で参照しているデータベースを変更している。
今回はルーム作成機能は見送りました。
チャット削除
間違って送信してしまったときのチャットを削除する機能。
これだけ、フロントエンドからファイアベースに削除命令を送っているだけ。
チャットを削除したとき、ポップアウトで”コメントを削除しました”と表示される。
今回はチャット編集機能は見送りました。
あとがき
以上が制作したチャットアプリの概要です。
制作期間は2週間とちょっとでした。
初めての制作と言こともあり、実装したかった機能を実装できなかったりしましたが
angualrとファイヤーベースの基礎なにより、開発の基礎を学べたことが一番の収穫です。
次に個人で制作するときは今回のことを活かした成果物を作りたいです。
2022年10月3日 新米プログラマーの備忘録