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

この記事を書いた人

アバター

成田哲洋

最近、4Kモニタを買いました。