質問: #### 開発しているもの * Firebaseを使ったWebシステム * 複数のHTML/JS/CSSファイルから構成されている (タブレット、スマホからも利用可能) #### やりたいこと Firebase Realtime Databaseが更新されたときに、全ユーザーにデスクトップ通知(PC&モバイル両方)を送信したい ※データベースの特定のロケーションのみ * ユーザーがシステム内のどのページにいても通知は送信される * システムがバックグラウンドのとき(ブラウザを開いていないなど)も、通知を送信したい #### 知りたいこと 1.Notifications APIで実装 2.FirebaseのCloud MessagingとCloud Functionsで実装 1,2のどちらがいいのかが知りたいです。 1は途中まで以下のように実装してみました ``` ref.on('value', () => { /** notificationを送信 **/ }); ``` ただ、この場合はリスナーをつけた(`ref.on`の記述があるページ)にいるときにしか通知は送信されませんでした。 一方、2で実装することを考えた場合、開発しているシステムはメッセージのやりとりをするものではないので、わざわざCloud Messaging SDKを利用する必要があるのかどうか、という点で迷っています。 (システムが重くなることを避けたいため) よろしくお願いします。」
回答: まだ、僕もfirebase 2年目ですが困っている時結構qaサイトに助けられましたので、投稿します 1の場合に関しては、通知を受ける側の端末任せでnotifyが表示されていると思います。 ref.onのままの端末が10万を超えたら、flameだとアウト。blazeならデータベースを分けていく必要が出てくると思いますので、1の選択は除外した方が良いと思います。 Cloud Functionsの選択が楽チンだと思います。 Notificationsのpayloadにdataのjsonもつけて送信することで、 着信後の取り回しも楽になると思います。 というところで Cloud Functionsにてnotification送信後dataのjsonをserviceworkerにて取り回しが最良と思います。