FirebaseのReal Time DatabaseとC#を使ってとりあえずメッセージを送信してみる(1)
こんにちわ、ころんです!
内定先の懇親会で最近「Firebaseまじ神!」「Firebaseまじすごいよ」とよく聞くのでいじってみることにしました。
ファイアァァアアアアア!!!とえいえばTomollow Land 2018でSalvatore Ganacciが無理やり(?)演出係にファイアーさせてるのがツボってますw
Firebaseへの登録
FirebaseはGoogleの傘下にあるので自分はGoogleアカウントでそのまま入れました。
右上にある「コンソールへ移動」をクリックし、「プロジェクトを追加」を選ぶ。
プロジェクトの作成画面で、名前とリージョンを選び作成。今回は「FireBaseChat」で
リージョンはデフォルトでも特に問題ないかと。
Set a project location | Firebase
するとプロジェクトのメイン画面に移ることができました!
認証の設定
Firebaseの魅力にユーザー認証が容易にできることがあります。
わざわざOAuthの認証メソッドを書く必要もないし、Firebaseのプロジェクトごとに認証方法を変えられます。
今回は、分かりやすくするために「匿名」を選びます。
DBの設定
今回はユーザーが投稿したメッセージ等を格納するデータベースの設定を行います。
プロジェクトのメイン画面の左側にある開発から「Database」-->「データベースの作成」を選択するとセキュリティルールの設定に移ります。
今回は「テストモードで開始」を選択。これでDBの設定は終わりです。
DBのシークレットキー
DBへのシークレットキーは、左画面の歯車マークから「プロジェクトの設定」-->「サービスアカウント」-->「以前の承認情報」から取得できます。
しかしながら、DBのシークレットは現在廃止されているようなので今後は「Firebase Admin SDK」からの設定が必要らしいです。
今回の動作には問題ないですが、ここについても調べてみます。
DBのURL
データベースへのURLは「プロジェクトの設定」-->「全般」-->アプリ-->「ウェブアプリにFirebaseを追加」を選択することで確認できます。
C#でコードを書くときにこのDBシークレットキーとURLが必要になるのでメモっておいてください!
C#プロジェクトの作成
みんな大好きVisual StudioからC#のコンソールアプリを作成します。
C#でゴリゴリ書くのもいいですが、せっかくなのでFirebase REST APIをラッパーしたFireSharpを使います。
Visual Studioのパッケージマネージャーコンソールから「Install-Package FireSharp」と打ってインストール。
さてコードですが、ラッパーのおかげで単純にテキストを送信する内容だったらこの程度でできます。
AuthSecretとBasePathにさきほどメモったDBシークレットキーとURLを記入し、実行すると「Hello, Firebase!!!」がDBの「chats/」下に格納されます。
gistd1d30622b27851dbd2a657396cdbfbee
実行後にFirebaseプロジェクトのDatabaseを見ると「Realtime Database」が作成されていることが確認できます。
中身を見ると、先ほど送信したメッセージが格納されています!!
あら簡単!!!
画像は「!!!」の部分が見切れていますがちゃんと入っているので安心を
ちなみにコードのresonceのbodyを見ると各メッセージのIDが確認できます。
まとめ
今回は、Firebaseを使ってクライアントからサーバーにメッセージを格納する処理を作成しました。
単純ですが書いたコードは僅かで実現できたのは確かに便利!
ですがFirebaseの魅力はまだ発揮できていないので、次回からチャットサービスの作成までやっていきますね!!