Infomotionでの可視化では、FirebaseのRealtime Databaseが対応しています。そのため、enebularで作るフローもfirebaseに接続させることが多いと思います。
しかし、フローで使っていたnode-red-contrib-firebaseというノードが現在のFirebaseに対応しなくなっている状況です。そのため、Docsで公開しているチュートリアルが正しく動作しません。
近日中に新しいチュートリアルを公開予定なのですが、今日は、node-red-contrib-firebase以外にもfirebaseに連携できるノードがないか調べました。今回調べたのは、以下の3つのノードです。
- node-red-contrib-firebase-data
- node-red-contrib-firebase-admin
- node-red-contrib-firebase-messaging
node-red-contrib-firebase-data
node-red-contrib-firebase-dataノードは、Firebase realtime databaseに、msgペイロードのデータを挿入し、また取り出すことが出来ます。これまでのfirebaseノードの使い勝手に似ており、1つのノードで複数の機能が使えます(GET、PUT、POST、DELETなど)。パブリックなデータベースへの接続設定が可能ですので、すぐに設定して試しに可視化する場合には便利そうです。
node-red-contrib-firebase-admin
node-red-contrib-firebase-adminノードもまた、Firebase realtime databaseに、msgペイロードのデータを挿入し、また取り出すことが出来ます。これまでのfirebaseノードと、入力するmsgオブジェクトに若干の違いがあります。また、認証方法に従来のuser/passwordではなく、json形式で提供される鍵を含む情報を渡す方法をとっているので、セキュアに接続可能です。realtime databaseのほかにfirestoreデータベースも使用できるようですので、多機能だと思います。
node-red-contrib-firebase-messaging
node-red-contrib-firebase-messagingノードもまた、Firebase realtime databaseに、msgペイロードのデータを挿入し、また取り出すことが出来ます。ただし、firebaseへの接続情報をビルド時にファイルとして用意する必要があるため、enebularでは使えそうにありませんでした。
まとめ
今回は、Node-REDのフローでfirebaseを使うためのノードについて調べました。調べた結果、node-red-contrib-firebase-dataか、node-red-contrib-firebase-adminのいずれかがよさそうです。作るフローの性質に合わせて使いこなしていきたいです。