リアルタイムJavaScriptのチャットアプリケーションを構築する
10484 ワード
このチュートリアルでは、メッセージを格納するFireBaseを使用して、リアルタイムJavaScriptのチャットアプリケーションを構築する方法を学びます.我々は、任意のサーバーコードを記述することなく、リアルタイムデータを同期することができますFireBase“リアルタイム”データベースを活用しているでしょう.
あなたが既にしていない場合は、無料のFireBaseアカウントを作成する必要があります.一度あなたのアカウントgotoにコンソールにログインし、“リアルタイムチャット”と呼ばれる新しいプロジェクトを追加します.これを必要としないので、Google Analyticsを無効にしてください.
セットアップが完了すると、あなたのアプリケーションにFireBaseを追加するオプションを持っている画面に撮影されます“Web”オプションを選択し、プロンプトに従ってください.
セットアップを完了するには、サイドバーメニューから「リアルタイムデータベース」を選択することによって行われるデータベースを追加する必要があります.セキュリティルールのプロンプトが表示されたら「テストモードで起動」を選択します.
HTMLで始まるアプリをコーディングすることができます.
チャットメッセージをすぐにデータベースに格納されているだけでは、HTMLにメッセージをレンダリングする必要があります.FireBaseには、ビルトインがあります
うまくいけば、このシンプルなJavaScriptのリアルタイムチャットアプリケーションを構築楽しんだ.FireBaseは本当に簡単にリアルタイムの機能を必要とするアプリケーションを構築することができます.私はまた、チェックアウトをお勧めしますFirebase Community FireBaseで利用可能な機能の完全な範囲についての詳細をご覧ください.
プロジェクトをFirebaseで設定します
あなたが既にしていない場合は、無料のFireBaseアカウントを作成する必要があります.一度あなたのアカウントgotoにコンソールにログインし、“リアルタイムチャット”と呼ばれる新しいプロジェクトを追加します.これを必要としないので、Google Analyticsを無効にしてください.
セットアップが完了すると、あなたのアプリケーションにFireBaseを追加するオプションを持っている画面に撮影されます“Web”オプションを選択し、プロンプトに従ってください.
セットアップを完了するには、サイドバーメニューから「リアルタイムデータベース」を選択することによって行われるデータベースを追加する必要があります.セキュリティルールのプロンプトが表示されたら「テストモードで起動」を選択します.
リアルタイムチャットアプリのコーディング
HTMLで始まるアプリをコーディングすることができます.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Chatterbox</title>
</head>
<body>
<div id="chat">
<ul id="messages"></ul>
<form id="send-message">
<input id="chat-txt" type="text" />
<button id="chat-btn" type="submit">Submit</button>
</form>
</div>
<script src="https://www.gstatic.com/firebasejs/8.2.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.2.1/firebase-database.js"></script>
<script src="script.js"></script>
</body>
</html>
次に新しいscript.js
ファイルを作成し、プロジェクトのFireBase設定を追加します.このコードはFireBaseのメインメニューから「プロジェクト設定」にアクセスできます.次のようになります.const firebaseConfig = {
apiKey: "AIzaSyCSVtkMotInxYNE-fnvfVdaC5aVGlhzj4k",
authDomain: "realtime-chat-57589.firebaseapp.com",
projectId: "realtime-chat-57589",
storageBucket: "realtime-chat-57589.appspot.com",
messagingSenderId: "937988465303",
appId: "1:937988465507:web:ccf97g5919226364f8a956",
};
firebase.initializeApp(firebaseConfig);
const db = firebase.database();
次に、ユーザがユーザ名を入力する方法が必要です.物事をシンプルに保つためにprompt
データをキャプチャするには、次の手順に従います.const username = prompt("What's your name?");
次に、イベントリスナーを使用してpostChat
フォーム提出の機能.この関数は、各レコードをseperstampするタイムスタンプを使用して、データをFireBaseのメッセージコレクションに保存します.document.getElementById("send-message").addEventListener("submit", postChat);
function postChat(e) {
e.preventDefault();
const timestamp = Date.now();
const chatTxt = document.getElementById("chat-txt");
const message = chatTxt.value;
chatTxt.value = "";
db.ref("messages/" + timestamp).set({
usr: username,
msg: message,
});
}
データベースに保存されたデータは次のようになります.チャットメッセージをすぐにデータベースに格納されているだけでは、HTMLにメッセージをレンダリングする必要があります.FireBaseには、ビルトインがあります
child_added
新しいメッセージが追加されるたびに、既存のメッセージごとに1回起動されるイベントを返します.const fetchChat = db.ref("messages/");
fetchChat.on("child_added", function (snapshot) {
const messages = snapshot.val();
const msg = "<li>" + messages.usr + " : " + messages.msg + "</li>";
document.getElementById("messages").innerHTML += msg;
});
メッセージが送信されるたびに、ユーザー名とメッセージの新しいリスト項目がメッセージリストの最後に追加されます.あなたがseperateブラウザータブでアプリケーションを開くならば、あなたはリアルタイムでメッセージが更新するのを見ます.うまくいけば、このシンプルなJavaScriptのリアルタイムチャットアプリケーションを構築楽しんだ.FireBaseは本当に簡単にリアルタイムの機能を必要とするアプリケーションを構築することができます.私はまた、チェックアウトをお勧めしますFirebase Community FireBaseで利用可能な機能の完全な範囲についての詳細をご覧ください.
Reference
この問題について(リアルタイムJavaScriptのチャットアプリケーションを構築する), 我々は、より多くの情報をここで見つけました https://dev.to/michaelburrows/build-a-realtime-javascript-chat-app-using-firebase-1n56テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol