Firebaseは使ったことが無いのでドキュメント類を読んだだけです。間違っていたらご指摘下さい。
Firebase自体がRubyのライブラリを用意しているわけではありません。代わりに、汎用のREST APIを用意しており、そのラッパーであるサードパーティーのライブラリを使う必要があります。紹介されているのは次の三つです。
単純なREST APIでのリクエストの場合、通常のWebサイトのアクセスのように、リクエストに対して返したら終わりになります。しかし、そのような単純なリクエスト以外にストリーミングをサポートしています。Firebase側でイベントをストリーミングとして受け取る事ができるので、この機能に対応していれば、イベント監視のようなことが可能になります。
では、三つのライブラリについて、対応しているかを見ていきます。
###firebase-ruby
ストリーミングの例が無く、対応していないと思われます。このライブラリを使ってイベント監視することは難しいでしょう。
###BigBertha
ストリーミングの例が無く、対応していないと思われます。このライブラリを使ってイベント監視することは難しいでしょう。
###rest-firebase
**ストリーミングに対応しています。**READMEに例がのっていますので、その部分だけ抜粋します。
Ruby
1# (前略)
2# Streaming over 'users/tom'
3es = f.event_source('users/tom')
4es.onopen { |sock| p sock } # Called when connected
5es.onmessage{ |event, data, sock| p event, data } # Called for each message
6es.onerror { |error, sock| p error } # Called whenever there's an error
7# Extra: If we return true in onreconnect callback, it would automatically
8# reconnect the node for us if disconnected.
9es.onreconnect{ |error, sock| p error; @reconnect }
10# (後略)
ストリーミングでメッセージ(イベント)を受け取った時、onmessage
メソッドのところで指定したブロックが実行されるという仕組みのようです。どのようなeventとdataが渡されるかはFirebaseのドキュメントを参考にしながら試して見てください。
なお、REST APIをドキュメントを見ると、child_removed
とchild_moved
相当のイベントが見当たりません。これらが発生した時にどうなるかは、やってみないとわからないかと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。