0

FCMトピックの購読を使用して、ユーザーが自分の好きなチームを購読できるようにするライブスコアアプリを開発しています。fcmを使用したFirebaseライブスコアプッシュ通知

今はデバイスに定期的な通知を送信できます。コンソール、管理ノード、休止APIを使用して手動で通知を送信できます。ユーザーが定期購読するサブスクリプショントピックでも、特定の登録のサブスクリプションid。

So ...ユーザーが購読しているトピックはチームID(フットボールチーム)なので、いくつかのゲームイベントが発生したときに特定のトピックを購読しているユーザーに通知します、半分の時間、後半の半分の開始、ゲームの終了)プッシュ通知システムの非常に一般的な使用例です。

私はfirebaseデータベースに私のゲームデータを格納し、私は外部プロバイダからそれを取得し、「リアルタイム」に更新され、次のようになります。

{ 
     "AwayTeamShort": "ANZ", 
     "League": "Russian Premier League", 
     "comp_id": "1457", 
     "events": [ 
      { 
       "assist": "G. Gabulov", 
       "assist_id": "29779", 
       "extra_min": "", 
       "id": "23177131", 
       "minute": "46", 
       "player": "M. Kazankov", 
       "player_id": "113277", 
       "result": "", 
       "team": "localteam", 
       "type": "subst" 
      }, 
      { 
       "assist": "", 
       "assist_id": "", 
       "extra_min": "", 
       "id": "23177132", 
       "minute": "57", 
       "player": "I. Yediev", 
       "player_id": "", 
       "result": "", 
       "team": "localteam", 
       "type": "yellowcard" 
      }, 
      { 
       "assist": "K. Bazelyuk", 
       "assist_id": "269373", 
       "extra_min": "", 
       "id": "23177133", 
       "minute": "57", 
       "player": "A. Katsaev", 
       "player_id": "92363", 
       "result": "", 
       "team": "visitorteam", 
       "type": "subst" 
      }, 
      { 
       "assist": "J. Lipartia", 
       "assist_id": "41506", 
       "extra_min": "", 
       "id": "23177134", 
       "minute": "58", 
       "player": "K. Mamtov", 
       "player_id": "29851", 
       "result": "", 
       "team": "visitorteam", 
       "type": "subst" 
      }, 
      { 
       "assist": "E. Balyajkin", 
       "assist_id": "6770", 
       "extra_min": "", 
       "id": "23177135", 
       "minute": "67", 
       "player": "N. Kalinski", 
       "player_id": "", 
       "result": "", 
       "team": "localteam", 
       "type": "subst" 
      }, 
      { 
       "assist": "R. Koryan", 
       "assist_id": "123728", 
       "extra_min": "", 
       "id": "23177136", 
       "minute": "68", 
       "player": "M. Markovic", 
       "player_id": "139251", 
       "result": "[1-0]", 
       "team": "localteam", 
       "type": "goal" 
      }, 
      { 
       "assist": "P. Yakovlev", 
       "assist_id": "82061", 
       "extra_min": "", 
       "id": "23177137", 
       "minute": "71", 
       "player": "P. Dolgov", 
       "player_id": "309265", 
       "result": "", 
       "team": "visitorteam", 
       "type": "subst" 
      }, 
      { 
       "assist": "R. Koryan", 
       "assist_id": "123728", 
       "extra_min": "", 
       "id": "23177138", 
       "minute": "72", 
       "player": "V. Nikiforov", 
       "player_id": "26213", 
       "result": "", 
       "team": "localteam", 
       "type": "subst" 
      }, 
      { 
       "assist": "", 
       "assist_id": "", 
       "extra_min": "", 
       "id": "23177139", 
       "minute": "89", 
       "player": "A. Dovbnya", 
       "player_id": "123582", 
       "result": "", 
       "team": "localteam", 
       "type": "yellowcard" 
      }, 
      { 
       "assist": "", 
       "assist_id": "", 
       "extra_min": "2", 
       "id": "231771310", 
       "minute": "90", 
       "player": "T. Phibel", 
       "player_id": "58795", 
       "result": "", 
       "team": "visitorteam", 
       "type": "yellowcard" 
      }, 
      { 
       "assist": "", 
       "assist_id": "", 
       "extra_min": "2", 
       "id": "231771311", 
       "minute": "90", 
       "player": "S. Bryzgalov", 
       "player_id": "122214", 
       "result": "", 
       "team": "visitorteam", 
       "type": "yellowcard" 
      }, 
      { 
       "assist": "V. Nikiforov", 
       "assist_id": "26213", 
       "extra_min": "5", 
       "id": "231771312", 
       "minute": "90", 
       "player": "N. Kalinski", 
       "player_id": "", 
       "result": "[2-0]", 
       "team": "localteam", 
       "type": "goal" 
      } 
     ], 
     "formatted_date": "08.08.2017", 
     "ft_score": "[2-0]", 
     "ht_score": "[0-0]", 
     "id": "2211727", 
     "localteam_id": "14810", 
     "localteam_name": "SKA Khabarovsk", 
     "localteam_score": "2", 
     "region": "Russia", 
     "season": "2017/2018", 
     "status": "FT", 
     "time": "08:00”, 
     "venue": "Stadion imeni V.I. Lenina (Khabarovsk)", 
     "venue_city": "Khabarovsk", 
     "venue_id": "88600", 
     "visitorteam_id": "14786", 
     "visitorteam_name": "FK Anzi Makhackala", 
     "visitorteam_score": "0", 
     "week": "5" 
    } 

ユーザーがJSONでチームIDにサブスクライブチームIDの上にはvisitorteam_id、localteam_id、これらのIDはそのチームでは常に同じですが、訪問者かローカルかは関係ありません。インスタンスID APIの

私のサブスクリプションは、(私は、DBに格納しますが、この質問には関係ありません)のようになります。

{ 
    "application":"com.iid.example", 
    "authorizedEntity":"123456782354", 
    "platform":"Android", 
    "attestStatus":"ROOTED", 
    "appSigner":"1a2bc3d4e5", 
    "connectionType":"WIFI", 
    "connectDate":"2017-08-07 
    "rel":{ 
    "topics":{ 
     "42332":{"addDate":"2017-08-07"}, 
     "14810":{"addDate":"2017-08-07"}, 
     "14786":{"addDate":"2017-08-07"} 

    } 
    } 
} 

だから... ...どのように私が購読のデバイスに通知することができます彼らが加入しているチームがプレーしているゲームの目標についての特定のトピック(チームID)

シモンズ:私はおそらく解決策は複雑であることを知っているが、すべてのヘルプ、例がFirebaseクラウド機能を使用してみてください

答えて

0

歓迎されるだろう。 https://firebase.google.com/docs/functions/use-cases

変更に「購読する」FireRemoverクラウド機能を作成してから、プッシュ通知を自動的に起動することができます。

+0

こんにちはJavi、私は話題を購読することができますと私のjsonで作業し、特定のトピックに、例えば接続するアプローチの詳細については、 –

関連する問題