首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用fcm的Firebase Live分数推送通知

使用fcm的Firebase Live分数推送通知
EN

Stack Overflow用户
提问于 2017-09-18 18:45:49
回答 1查看 716关注 0票数 0

我正在开发一个应用程序,一个实时评分应用程序,允许用户订阅他们最喜欢的团队,使用FCM主题订阅,我需要帮助来向该用户发送通知。

现在我可以定期向设备发送通知,我可以通过控制台,管理node.js,rest api手动发送通知,甚至对于用户订阅的订阅主题,我也可以列出特定注册id的订阅。

所以..。我的用户订阅的主题是球队ids (足球队),我想做的是当一些游戏事件发生时通知订阅特定主题的用户,例如,目标,游戏状态(比赛开始,中场休息,下半场开始,比赛结束)这是推送通知系统的一个非常常见的用例。

我将我的游戏数据存储在firebase数据库中,我从外部提供商那里获得它,并“实时”更新,如下所示:

代码语言:javascript
复制
{
        "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的订阅如下所示(然后我将其存储在数据库中,但与此问题无关):

代码语言:javascript
复制
{
  "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)的设备通知他们订阅的团队正在进行的游戏中的目标?

Ps:我知道解决方案可能很复杂,但欢迎大家提供帮助,举例说明

EN

回答 1

Stack Overflow用户

发布于 2017-09-18 19:04:01

尝试使用Firebase云函数。https://firebase.google.com/docs/functions/use-cases

您可以创建一个Firebase Cloud函数来“订阅”更改,然后自动触发推送通知。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46277381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档