Cloud Firestoreでストップウォッチもどきを作る

今回のおはなし

前回
FirebaseのCloud Firestore(β)を試してみる

前回FirebaseのCloud Firestoreを試してみたので、
今回はそれを使ってストップウォッチもどきを作ってみました。

設定みたいなもの

データベースはこんな感じです。
年・月で更にネストしようかとも思ったけどまあ必要ないかなと思ってやめました。

とりあえず以下がコードです。

動きとしては当日のデータがあるかどうか見てから、
データがないならstarttimeを入れて、
当日のデータのstarttimeがあったらendtimeを入れるだけ。

ついでに開始時間・終了時間・時刻の差分を出力するようにしました。

ちなみにFirestoreに入れるとタイムゾーン有りのタイムスタンプに変換されるようで、
そのままdatetimeの時間差分を計算するとエラーが発生してしまいました。
.replace(tzinfo=None)を付けることで解決。(python3では別の解決法があるようです。)

結果

出力はこんな感じになります。

1日の初回に起動すると…

開始時間だけ出ます。

2回目以降

開始時刻、終了時刻、時間の差分が出ます。

まとめ

これをボタンをつけたArduinoとかラズパイとかに入れて動かせば簡単に時間を計れる。
データベースに残せるから作業時間記録とかに使えそう。

せっかくなら時間の差分もデータベースに入れたかったけど、タイプが対応していないようで無理でした。
あと、クラスオブジェクトのメソッドがまだあまり無いようでそんなに使いやすくなかったです。

参考ページ

Pythonライブラリのクラスとかのページ
Collections — google-cloud c5dac35 documentation

成田哲洋

最近親知らずを抜きました。

※記事の内容は保証はしておりません(執筆時期や実施環境により挙動が変わるものがある為)。
別途検証してご利用いただくことをおすすめいたします。