Firebase に保存したブログ記事のメタデータの活用

記事
IT・テクノロジー

Firebase に保存したブログ記事のメタデータの活用

Firebase に保存したブログ記事を管理する際にメタデータを活用すると効率的で便利なサービスが実現できます。この記事ではメタデータの活用例を紹介します。

メタデータとは

簡単にいうと、おまけのデータです。おまけと言っても価値の高いデータで、ブログの記事の場合は、「記事に関するデータの概要」の様な位置付けのデータの事をこのように呼んでいます。 単に記事を保存するだけではなく、記事の概要がわかるデータと一緒に保存することで記事の利用がよりやりやすくなる利点があります。既に紹介していますが、記事の一覧を表示する際に、単にファイルの名前を表示するより、その記事のタイトルや概要を一緒に表示することで、一覧を見るだけで各記事の概要がわかると利用者は見たい情報を効率よく見つけることができます。また、検索のためのキーワードなどをメタデータに入れておくことで、記事全体を探さなくても効率的に興味がありそうな記事を特定するのにも役立ちます。

どこにメタデータを保存するか?

では、メタデータをどこに保存するかが気になりますよね? 実は、Firebase のストレージにファイルを保存する際に、メタデータを一緒に Firebase のストレージのファイルのデータと一緒に保存する事ができます。Firebase がこうしたメタデータをファイルの情報と関連づけて保存してくれるので、ここからメタデータを取り出すことが可能です。

この機能は便利な機能ですが、Firebase のストレージに保存されているファイルという前提条件で利用が可能という制限がついています。Firebase に置いたデータを使う場合には余り問題ではありませんが、例えば、ブログの記事をバックアップした場合には、記事のファイル自体にはメタデータが含まれていないので、データの引っ越しなどを行う場合にはちょっと不便です。

ファイル自体のバックアップは簡単ですが、メタデータの引っ越しにはプログラムで Firebase に保存されているメタデータを読み出してファイル名と関連づけて保存するような仕組みを作らないと、データのバックアップや引越しの際には面倒な作業が発生します。

Markdown の活用

そこで、既に紹介している Markdown でブログの記事を書くというのを今回紹介しているブログサービスでは採用しています。 Markdown の場合、ファイルのヘッダー部分にメタ情報を記述できるので、「ファイルの一部」としてメタデータを保存できます。従って、ファイルその物のバックアップができれば、引っ越しをする場合でも毎回、ブログの記事のファイルから取り出せば良いので特別な処理は必要ありません。Markdown の記述の処理のモジュールは広く公開されているので自分のサービスに簡単に組み込んで利用できます。

別の記事で紹介していますが、Markdown で書かれた記事は、特別なプログラムで体裁を整えなくても十分に読む事が可能です。もちろん、Google Chrome の拡張機能などを使えば Web ブラウザでも、綺麗な形に整えた状態で見ることも簡単にできます。プログラムで HTML に変換することも簡単なので、自分で作成するブログの原稿や、Web サイトの基本情報に利用しやすい記述形式です。

GitHub のドキュメントも基本は Markdown で書くのが標準になっています。

どんなデータを保存すれば良いか?

メタデータをどの様に利用するかによりますが、ブログサービスの場合に役に立つ情報は、

* タイトル
* 記事の概要
* 投稿日
* 検索キーワード
* Firebase のストレージのファイルの保存場所
* ファイル名
* 最終更新日
* 記事の分類
あたりを保存しておくと、メタデータを見れば Firebase のストレージからファイルを取得するのに必要な情報を取得できるると同時に、一覧に詳しい記事の情報を一緒に表示できるので、記事を読まなくてもある程度記事の内容を伝えることが可能になります。

Firebase のストレージからファイルの中身を取り出すには、「バケット(フォルダーの様なファイルの保存場所)」とファイル名が分かれば API で簡単に取り出す事ができます。

こうしたブログの記事の概要を一覧などで保存する際には、ファイルの中身を全て読み込む必要はありません。記事が選択されて時点でファイルの中身を取得すれば十分なので、こうした情報を Firebase ストレージのメタデータとしてではなく、Firegbase のデータベースに保存しておけば、より高速でメタデータを取得できます。

データの作成は、ファイルの投稿時に Markdown から読み取ってデータベースに登録するという方法で行う事ができますが、管理ツールから Firebase ストレージに保存されているファイルからメタデータを読み込んでデータベースを作成する機能を作れば、ブログの投稿記事の保存場所を引っ越しした場合でも、データベースの更新が簡単に行えます。

従って、管理アプリでは

* 投稿の処理(毎回メタデータを抜き出してデータベースに登録)
* Firebase のストレージのファイルからメタデータをまとめて抜き出してデータベースを作成
の機能をつくっておくと、ブログの記事の管理や扱いがかなり効率的にできるようになります。 こうした機能があると、ブログサービスのテストのための Firebase のプロジェクトも簡単に作成できますし、Web サイトの構成を変更する場合でも比較的スムーズに移行が行えます。

まとめ
ブログサービスなどを実装する場合、投稿した記事の情報を投稿の中身とは別に管理できるとサービスをより使いやすく便利な物にすることができます。タイトルや記事の概要などの補助的な情報をメタデータとして保存できると、メタデータを利用するとこうした記事の情報を活用できます。

Firebase のストレージを利用する場合、メタデータを追加して保存することもできますが、記事の扱いを考えるとファイル自体にメタデータを埋め込めると便利です。こうした事を簡単に実現できるのが「Markdown」です。

GitHub のドキュメントと同様に、Markdown で記事を書くと、メタデータを予めファイルに埋め込めるので管理や再利用の際に特別な処理をしなくてもメタデータを活用できます。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す