Cocoa勉強会関西で「アプリのお問い合わせ機能をサーバーレスでつくる Firebase 編」を発表しました #cocoa_kansai

ずいぶんと時間が経ってしまいましたが…
第77回 Cocoa勉強会関西で、「アプリのお問い合わせ機能をサーバーレスでつくる Firebase 編」という発表をしました。

cocoa-kansai.connpass.com

内容

モバイルアプリにしばしばあるお問い合わせ機能 (フィードバックフォームなど) について、サーバレスで実現できないかと思い調べた内容を発表しました。
iOS だと通常は MFMailComposeViewController を使ったり、自サービスの Web API へポストしたりすると思います。

今回は Firebase での実現方法を検討しました。
Firestore と Cloud Functions for Firebase を利用しています。
(Firestore でなく Firebase Realtime Database でも実現できます)
雑ですがサンプルコードもあります。

github.com

この構成はまだプロダクションには乗せられていないので、しばらくやってみてからまたアウトプットしたいですね…

補足

いくつかご質問を頂きましたが、発表中にちゃんとフォローできなかったのでここで補足します。

インターネットにつながっていない場合はどうなる?

オフラインでの永続性を設定している場合は、オンラインになったときに自動的に送信されるようになります。

オフライン データを有効にする (Firestore)

端末がオンラインに戻ると、アプリがローカルで行った変更とリモートの Cloud Firestore に保存されたデータが同期されます。

Firestore ではデフォルトだとこの設定が有効なため、オンラインに戻ると自動的に送信されます。

iOS のオフライン機能 (Realtime Database)

Realtime Database では isPersistenceEnabled オプションを true に設定すると利用できます。

データの内容は管理画面で見れる?

f:id:urouro_n:20180423211245p:plain

Firebase のダッシュボードで、このような形で見ることができます。