📜  firebase bigquery 云消息 - SQL (1)

📅  最后修改于: 2023-12-03 14:41:12.093000             🧑  作者: Mango

Firebase BigQuery 云消息 - SQL

Firebase是一个提供移动和Web应用程序开发平台和后端服务的Google子公司。其中,Firebase Cloud Messaging (FCM)是一项跨平台的云消息传递解决方案,可让您在移动应用程序和Web应用程序之间直接交换信息。 Firebase还包括与FCM配套的Analytics和Remote Config等服务。

而BigQuery是一个全托管的云数据仓库,带有实时分析和协作数据探索能力,支持标准SQL。 Firebase提供了与BigQuery的集成,支持把FCM发送到BigQuery数据集,并使用SQL查询分析这些数据。

Firebase BigQuery 集成

Firebase提供了一种简单而灵活的方法来将FCM消息传递到BigQuery数据集中,无需编写代码。首先,您需要在Firebase控制台中启用BigQuery集成。然后,您需要在项目中配置包含您想要查询的消息的表格。最后,您可以使用BigQuery的标准SQL功能来查找并分析这些数据。

Firebase 消息数据模式

Firebase 消息数据模式遵循以下结构:

{
  "message_id": "string",
  "message_type": "string",
  "app_id": "string",
  "creation_time": "string",
  "dry_run": "boolean",
  "error": {
    "code": "integer",
    "message": "string"
  },
  "notification": {
    "title": "string",
    "body": "string",
    "icon": "string",
    "image": "string",
    "sound": "string",
    "tag": "string",
    "color": "string",
    "click_action": "string",
    "body_loc_key": "string",
    "body_loc_args": [
      "string"
    ],
    "title_loc_key": "string",
    "title_loc_args": [
      "string"
    ],
    "android_channel_id": "string"
  },
  "data": {
    "key1": "string",
    "key2": "string",
    ...
  },
  "android": {
    "collapse_key": "string",
    "priority": "string",
    "ttl": "string",
    "restricted_package_name": "string",
    "data": {
      "key1": "string",
      "key2": "string",
      ...
    },
    "notification": {
      "title": "string",
      "body": "string",
      "icon": "string",
      "image": "string",
      "sound": "string",
      "tag": "string",
      "color": "string",
      "click_action": "string",
      "body_loc_key": "string",
      "body_loc_args": [
        "string"
      ],
      "title_loc_key": "string",
      "title_loc_args": [
        "string"
      ]
    }
  }
}
分析 Firebase BigQuery 数据

一旦FCM消息已存储到BigQuery数据集中,您就可以使用BigQuery的标准SQL功能来对其进行分析。以下是一个使用BigQuery查询工具分析FCM消息示例:

SELECT COUNT(message_id) AS message_count, notification.title, notification.body
FROM `project_id.dataset_id.table_name`
WHERE message_type = 'MESSAGE_TYPE_RECEIVED'
GROUP BY notification.title, notification.body
HAVING message_count > 10
ORDER BY message_count DESC
LIMIT 100

这条SQL查询语句将计算收到的消息数,并按标题和正文显示消息内容。筛选器将消息类型指定为“MESSAGE_TYPE_RECEIVED”,并限制结果集为超过10条的数据行,按消息计数降序排序并限制结果集大小为100行。

结论

FCM和BigQuery的结合为Firebase用户提供了可靠的移动通信方案,并使数据分析变得更加容易。使用BigQuery的标准SQL功能,可以轻松地对Firebase消息进行分析,从而得出有用的洞察力。