Firebase Realtime Databaseを C#から利用する

2.8K Views

July 21, 21

スライド概要

Firebase Realtime Database を C# の Azure Functions から利用してみたところ、とても簡単に実現できたので、その紹介です。

profile-image

30代後半から発信活動を始めて人生が楽しくなりました。 主にC#/設計技法/マネジメント/チームビルディングの情報を発信します。 デブサミ2020関西ベストスピーカー賞1位。 Microsoft Build 2022 スピーカー。 ITエンジニア向けの月刊誌「Software Design」2022年4月号より連載記事を執筆中。 デンソークリエイト所属。発言は個人の見解。

シェア

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Firebase Realtime Databaseを C#から利用する Serverless LT初心者向け 小島 優介 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. /65

2.

はじめに Firebase Realtime Database を C# の Azure Functions から利用してみたところ とても簡単に実現できたので、その紹介です Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 2 /65

3.

自己紹介 名前:小島 優介 所属:デンソークリエイト 活動実績: C#でのツール開発15年(現在はエンジニアリングマネージャー) デブサミ2020関西 ベストスピーカー賞1位 https://codezine.jp/article/detail/12919 Twitter:@kojimadev https://twitter.com/kojimadev Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 3 /65

4.

• • • • Firebase Realtime Database とは C#での使い方 Azure Functionsで利用 まとめ Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 4 /65

5.

Firebase Realtime Database とは NoSQL クラウド データベースでデータの保管と同期を行うことが できます。データはすべてのクライアントにわたってリアルタイムで 同期され、アプリがオフラインになっても引き続き使用できます。 公式ページは以下参照。 https://firebase.google.com/docs/database?hl=ja Firebaeにはもう1つ Cloud Firestore というデータベースがあり、 それとの違いは、インポート・エクスポート・一括更新に強く、 書き込み・読み込みの頻度が高い場合にリーズナブルな所。 容量1GBまでは無料利用可能。 2つのデータベースの比較は以下参照。 https://techblog.kayac.com/rtdb-vs-firestore Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 5 /65

6.

• • • • Firebase Realtime Database とは C#での使い方 Azure Functionsで利用 まとめ Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 6 /65

7.

C#で利用できるライブラリ FirebaseDatabase.net というライブラリを使えば 簡単に Firebase Realtime Database を利用できる 公式サイトは以下参照。 https://github.com/step-up-labs/firebase-database-dotnet Nuget という C#でのパッケージマネージャから ダウンロードしてインストール可能。 以降で、このライブラリの利用方法を紹介。 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 7 /65

8.

認証方法(サーバー側で secret を利用) 最もシンプルな認証方法は、サーバー側での利用の際に Firebase Realtime Database の secret と URL の2つを設定する。 下図の赤枠部分を書き換えるのみ。 ただし、secret は Googleでは非推奨で、推奨方法は以下参照。 https://firebase.google.com/docs/admin/setup?hl=ja#c_1 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 8 /65

9.

データの取得方法 FirebaseClientクラスのインスタンスを作って Childメソッドでパスを指定して OrderByXXXメソッドで取得する順序を指定して 取得できる Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 9 /65

10.

データの取得の例 右図のデータがある場合に items 以下の要素一覧を IntValueの昇順で 任意のクラス T のコレクションで 取得したい場合は 下図のように実装する Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 10 /65

11.

データの編集方法 FirebaseClientクラスのインスタンスを作って Childメソッドでパスを指定して PutAsyncメソッドで登録および更新 DeleteAsyncメソッドで削除ができる Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 11 /65

12.

データの編集の例 右図のデータがある場合に “items/XXX” というパスに valueというobject型の変数で 追加または更新したい場合は 下図のように実装する Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 12 /65

13.

• • • • Firebase Realtime Database とは C#での使い方 Azure Functionsで利用 まとめ Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 13 /65

14.

簡易利用できるインターフェイスを作成 右図のように 簡単な更新、削除、取得を 行うインターフェイスを作成 こちらのリポジトリで公開 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 14 /65

15.

簡易利用できるインターフェイスの利用方法 呼び出し元のプロジェクトで、下図のようなコードを書けば 簡易利用できるインターフェイスを用いてFirebaseが利用できる これを用いてAzure Functionsで利用する例を以降で紹介 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 15 /65

16.

Azure Functions でデータ取得するAPI作成 Azure Functions は Visual Studioでプロジェクト作成すると ひな形が作成されるため、メソッドの中身を書くだけで実現できる 赤枠の2行を書くだけで、Firebaseからデータを取得できる 行うインターフェイスを作成 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 16 /65

17.

Azure Functions でデータ編集するAPI作成 データを登録するAPIは、別のメソッドに数行書くだけで作成できる 赤枠の数行を書くだけで、Firebaseにデータを登録できる Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 17 /65

18.

• • • • Firebase Realtime Database とは C#での使い方 Azure Functionsで利用 まとめ Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 18 /65

19.

まとめ Firebase Realtime Database は C#から簡単に利用できる Azure Functions から利用することも簡単 本発表で紹介したソースコードは 以下のリポジトリで公開 https://github.com/kojimadev/FirebaseRealtimeDatabaseService Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 19 /65