FileMakerとFirebaseの統合

先月のFM-Chubuでプレゼンをされた寿商会の若林さんと、その後の懇親会で話しているときに、FirebaseとFileMakerという組み合わせのアイデアを聞いて「なるほど」と感心しました。
REST APIサーバを素早く立ち上げることができるFirebaseと、JSONの送受信を行うモバイルアプリを簡単に作れるFileMakerを使えば、世の中に存在するメジャーな開発ツールを凌ぐような小回りがきくシステムを作れる可能性があるというわけです。
調べたところ、2015年にこの組み合わせについて書いているブログを見つけました。さっそく訳してみたのですが、その後で残念ながらサンプルファイルへのリンクが切れてしまっていることに気づきました。記事を書いた方にコンタクトをとったのですが連絡がつかず、サイトもその後更新がされていないようでした。ですが、せっかくなので翻訳は公開することにしました。
記事は3年前のものなので、状況はいろいろと変わっています。FileMakerはVer.16で「URLから挿入」スクリプトステップがcURLオプションをサポートしたため、もはやBaseElementsプラグインを使う必要はなくなりました。開発への入り口の敷居はますます低くなっています。皆さんも試してみてはいかがでしょうか?
なお、Firebaseに関する情報は(特に紙媒体では)まだ少ないですが、WEB+DB PRESS Vol.105の特集がよくまとまっていて参考になりました。


RECURSIVE PLATYPUS PROS – FILEMAKER BLOG

FileMaker and Firebase Integration Part 1

(元記事はこちら)

Nick Farnan
2015/11/23

皆さん、おはようございます。今回は、すばらしいWeb APIの一つであるFirebaseを統合する方法を見ていきます。FirebaseのWebサイトはこちら

スクリーンショット2015-11-22 at 10.47.54 PM.png

Firebaseを一言で定義すると、さまざまなデバイス (iOS、Android、Javascript、ブラウザなど) でデータを簡単に同期できるバックエンド用のJSONデータサーバです。豊富なセキュリティオプションがあり、すばらしいサンプルプログラムとともに、豊富なドキュメントがあります。ローカルのMac上のFileMakerデータベースに入力したデータがあれば、そのデータをFirebaseにプッシュして、作成したデバイス上のアプリケーションから、同じ情報をリアルタイムで簡単に取得することができます。サーバ設定やPHPスクリプトに一切わずらわされることはありません。

スクリーンショット2015-11-22 at 1.46.12 PM.png

Firebaseを利用するための登録は完全に無料で、実際にデータの制限設定はかなり良心的と言えるでしょう。ぜひユーザ登録をして、サイトにあなた自身のFirebaseアプリを作り、そのURLをメモしてください。

スクリーンショット2015-11-22 at 1.46.37 PM.png

FirebaseはRESTful APIを使用します。これは、URLの呼び出しを通じてデータと通信できることを意味します。残念ながら「URLから挿入」の機能の制限により、FirebaseのデータをREQUESTすることはできますが、データをPOSTすることは、FirebaseにURLと共にJSON本体を送信する必要があるため、対応できません。しかしご心配なく。BaseElementsが「URLから挿入」の弱点から私たちを救ってくれます。すばらしい、しかも無料のBaseElementsプラグインを使用すると、データをFirebaseに送信して、Firebase上のデータに対してInsert、Update、Deleteなどが可能になります。

BaseElementsプラグインへのリンク (ありがとう、Goya!)

始める前に、Firebaseサイトにアクセスして無料のアカウントを登録し、自分のアプリを設定して自分の情報を使ってテストできるようにしてください。そして忘れずにサンプルのFileMakerファイルをこちらからダウンロードしてください。(訳注: リンクは無効です。)

ステップ1: 上にリンクを示したFileMakerのサンプルファイルを開きます。もしまだの場合は、ファイルにBaseElementsプラグインをインストールします。最初のレイアウトは、さまざまなサンプルに導くためのメインレイアウトです。いくつかの参考になるWebページへのリンクもあります。

スクリーンショット2015-11-22 11.10.17 PM.png

ステップ2: GETのページです。ここには、私のFirebaseアプリケーションの1つ(名前はRumchata)からデータを要求するボタンが含まれています。そこにはRumchataの他にいくつかのレシピが含まれています。サンプルファイルには、「URLから挿入」だけを使用するものと、もう1つはBaseElementsプラグインを使用してデータをリクエストするものを含んでいます。ここまでは、2つの機能はほぼ同一であり、プラグインは実際には必要ありません。またここにはカスタムボタンセットが準備してあり、あなた自身のFirebaseアプリのURLを入力してFirebaseからデータをREQUESTできます。

スクリーンショット2015-11-22 at 11.04.26 PM.png

ステップ3: PUTのページです。ここにはGETのページと同じオプションがありますが、これらを機能させるにはBaseElementsプラグインが必要です。最初のボタンでレシピデータを入力し、PUTを使ってFirebaseにデータを送信します。

スクリーンショット2015-11-22 at 11.05.23 PM.png

カスタムオプションもあり、Firebase URLとキー/値のペアを入力して、それを自分のFirebaseアプリにPUTできます。

スクリーンショット2015-11-22 at 11.05.45 PM.png

これらはどちらも、JSON変数を設定する新しいスクリプトステップを使用します。PUT(およびPOST)のリクエストを行うには、データを追加するノードのベースURLと、設定したキー/値のペアのJSON変数を使用します。

スクリーンショット2015-11-22 at 11.06.52 PM.png

ステップ4: POSTのページです。PUTのページと同じオプションを含んでいますが、実際にPUTとPOSTのオプションは非常に似ています。主な違いは、FirebaseにPOSTする場合、送信するデータの親としてユニークキーを生成することです。例えば、https://rumchata.firebaseio.com/users_post.jsonというURLとともに、「username」というキーと「Nick」の値を使用するとします。Firebaseでは、追加したユーザへのパスは次のようになります: https://rumchata.firebaseio.com/users_post/-INOQPH-aV_psbk3ZXEX/username

スクリーンショット2015-11-22 at 11.07.52 PM.png

これによってFirebaseにユニークな値を簡単に追加でき、また後で呼び出すことができます。

説明は以上です。サンプルのスクリプトを見て、いろいろな変更を加えてみて、Firebaseへのデータの送受信がどういうものか味わってみてください! APIのドキュメントをざっと見て、Filemakerに取り入れることができる他の機能を見つけてください。

このシリーズのパート2では、Filemakerでデータを解析してFirebaseの情報を更新します。またWebViewerを使用してFileMaker版の独自のチャットクライアントを作成します。(訳注: 結局このパート2は書かれなかったようです。)

この記事にコメント、質問、提案などをお願いします。私が作るFilemaker関連のものやばかげたゲームについての最新情報を得るためにtwitterアカウント(@pudgyplatypus)をフォローしてください。また、FileMakerの開発やMacのコンサルティングをご希望であれば、MC ServicesのWebサイトもチェックしてください。

Nick

 

 

 

 

 

Leave a Reply