使用 Firebase 控制台发送消息

您可以使用 Firebase 控制台中的通知编辑器发送通知消息。尽管使用这种方法发送消息的灵活性或可扩缩性不及使用 Admin SDKHTTP 和 XMPP 协议,但它非常适合用于测试或者针对性较强的营销活动及用户互动。Firebase 控制台提供基于分析的 A/B 测试,可帮助优化和改进营销消息。

当您在应用中设定好用于接收消息的逻辑后,非技术用户便能按照 Firebase 帮助中心的通知页面中的说明来发送消息。

简介

通知编辑器发送通知消息时,Google 以如下方式使用您在表单字段中输入的值:

  • 用户细分到期时间等字段用于确定消息目标和传送选项。
  • 通知文字自定义数据等字段以由键值对构成的负载形式发送至客户端。

这些字段会映射至使用 FCM 服务器协议时可用的键。 例如,在自定义数据中输入的键值对是作为通知的数据载荷处理的。其他字段直接映射至 FCM 通知载荷中的键。

请注意,通知编辑器中的某些字段在使用 FCM 服务器协议时不可用。例如,您可以根据应用版本、语言、浏览器类型和版本、用户属性定位用户细分,而这些方法均无法通过服务器 API 中的 to 字段来使用。

Firebase 控制台向客户端发送的键有:

控制台字段标签 说明
notification.title 通知标题 指示通知标题。
notification.body 通知文字 指示通知正文。
data 自定义数据 您定义的键值对。它们以数据有效负载的形式传送至应用以进行处理。

决定消息传送的键包括:

控制台字段标签 说明
sound 声音

指示设备收到通知时要播放的声音。

time_to_live 有效期

此参数指定设备离线后消息在 FCM 存储区中保留的时长(以秒为单位)。 如需了解详情,请参阅设置消息的有效期

审核日志

本页面介绍由 Firebase 创建、包含在 Cloud Audit Logs 中的审核日志。

概览

Firebase 服务会写入审核日志,便于您了解谁何时在何处执行了什么操作。这些日志就是作为关联到 Firebase 项目的 GCP 项目的一部分提供的 Cloud Audit Logs 日志。每个 Firebase 项目都只包含直接属于项目的资源的审核日志。

如需大致了解 Cloud Audit Logs,请转到 Cloud Audit Logs。如需深入了解 Cloud Audit Logs,请参阅了解审核日志

Cloud Audit Logs 会为每个 GCP 项目、文件夹和组织维护三类审核日志:

  • 管理员活动审核日志
  • 数据访问审核日志
  • 系统事件审核日志

只有明确启用了数据访问审核日志,Firebase 通知控制台才会写入此类日志。数据访问审核日志包含用于读取资源配置或元数据的 API 调用,以及用户进行的用于创建、修改或读取用户所提供资源数据的 API 调用。数据访问审核日志不会记录对公开共享的资源(所有用户所有经过身份验证的用户均可使用)或无需登录 GCP 即可访问的资源执行的数据访问操作。

Firebase 通知控制台不会写入管理员活动审核日志。

Firebase 通知控制台不会写入系统事件审核日志。

审核的操作

下表汇总了 Firebase 通知控制台中每种审核日志类型对应的 API 操作:

审核日志类别 Firebase 通知控制台操作 类型名称(用来在界面中搜索日志)
数据访问日志 (DATA_READ) 获取广告系列 GetCampaign
数据访问日志 (DATA_READ) 列举广告系列 ListCampaign
数据访问日志 (DATA_READ) 通过 ABT 实验通知获取信息 LegacyGetRollout
数据访问日志 (DATA_READ) 获取受众定位可能性 GetAudiences
数据访问日志 (DATA_READ) 获取 FCM 统计数据(已发送/已打开/已传送/已转化计数) GetFcmStats
数据访问日志 (DATA_READ) 获取对应于某个日期范围和项目的分析标签列表。 GetAnalyticsLabelList
数据访问日志 (DATA_WRITE) 创建广告系列 CreateCampaign
数据访问日志 (DATA_WRITE) 删除广告系列 DeleteCampaign
数据访问日志 (DATA_WRITE) 更新广告系列 UpdateCampaign
数据访问日志 (DATA_WRITE) 通过 ABT 创建发布 LegacyCreateRollout

审核日志格式

审核日志条目包含以下对象,您可以使用 Stackdriver Logging 日志查看器、Stackdriver Logging API 或 Cloud SDK 进行查看:

  • 日志条目本身,即类型为 LogEntry 的对象。有用的字段如下所示:

    • logName 包含项目标识和审核日志类型
    • resource 包含所审核操作的目标
    • timeStamp 包含所审核操作的时间
    • protoPayload 包含审核信息
  • 审核日志记录数据,即保存在日志条目的 protoPayload 字段中的 AuditLog 对象。

  • (可选)服务专属的审核信息,即保存在 AuditLog 对象的 serviceData 字段中的服务专属对象。如需了解详情,请参阅服务专属审核数据

如需了解上述对象中的其他字段以及如何解读这些字段,请参阅了解审核日志

日志名称

Cloud Audit Logs 资源名称指明了审核日志所属的项目或其他实体,以及日志是包含管理员活动、数据访问还是系统事件审核日志记录数据。例如,下面显示的日志名称分别表示项目的管理员活动审核日志和组织的数据访问审核日志:

projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity
organizations/[ORGANIZATION_ID]/logs/cloudaudit.googleapis.com%2Fdata_access

服务名称

Firebase 通知控制台审核日志使用服务名称 gcmcontextualcampaign-pa.googleapis.com

如需详细了解日志记录服务,请参阅将服务映射到资源

资源类型

Firebase 通知控制台审核日志全部都使用资源类型 audited_resource

如需查看完整列表,请转到受监控的资源类型

启用审核日志记录

数据访问审核日志默认处于停用状态,除非明确将其启用,否则无法写入此类日志(BigQuery 数据访问审核日志属于例外,此类日志无法停用)。

要了解如何启用部分或全部数据访问审核日志,请参阅配置数据访问日志

您启用的数据访问审核日志可能会影响 Stackdriver 中的日志价格。请参阅本页中的价格部分。

Firebase 通知控制台不会写入管理员活动审核日志。

审核日志权限

Cloud Identity and Access Management 权限和角色决定您可以查看或导出哪些审核日志。日志位于项目以及组织、文件夹和结算帐号等一些其他实体中。如需了解详情,请参阅了解角色

要查看数据访问审核日志,您必须在审核日志所属的项目中拥有以下某一角色:

如果您正在使用非项目实体(例如组织)的审核日志,请将项目角色更改为合适的组织角色。

查看日志

您可以通过多种方式来查看审核日志条目:

基本查看器

您可以使用 GCP Console 中的“日志查看器”基本界面来检索审核日志条目。执行以下操作:

  1. 转到 GCP Console 中的 Stackdriver Logging > 日志(日志查看器)页面:

    转到“日志查看器”页面

  2. 在页面顶部选择一个现有 GCP 项目,或者创建一个新项目。

  3. 在第一个下拉菜单中,选择您要查看其审核日志的资源类型。您可选择特定资源,也可选择 Global 以包括所有资源。

  4. 在第二个下拉菜单中,选择您要查看的日志类型:activity 表示管理员活动审核日志,data_access 表示数据访问审核日志,system_events 表示系统事件审核日志。

    如果上述选项均未显示,则表示项目中没有该类型的审核日志。

高级查看器

您可以使用 GCP Console 中的“日志查看器”高级界面来检索审核日志条目。执行以下操作:

  1. 转到 GCP Console 中的 Stackdriver Logging > 日志(日志查看器)页面:

    转到“日志查看器”页面

  2. 在页面顶部选择一个现有 GCP 项目,或者创建一个新项目。

  3. 在第一个下拉菜单中,选择您要查看其审核日志的资源类型。您可以选择特定资源,也可以选择 Global 以包括所有资源。

  4. 点击搜索过滤框最右侧的下拉箭头 (▾),然后选择转换为高级过滤条件

  5. 创建过滤条件,以进一步指定您要查看的日志条目。 要检索项目中的所有审核日志,请添加以下过滤条件。 在每个日志名称中提供有效的 [PROJECT_ID]

      logName = ("projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity" OR
          OR "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events"
          OR "projects/[PROJECT_ID]logs/cloudaudit.googleapis.com%2Fdata_access")
    

    如需详细了解过滤条件,请转到高级日志过滤条件

API

要使用 Stackdriver Logging API 查看审核日志条目,请执行以下操作:

  1. 转到 entries.list 方法文档中的试用此 API 部分。

  2. 将以下内容添加到试用此 API 表单的请求正文部分。点击此预填充的表单后,系统会自动填充请求正文,但您需要在每个日志名称中提供一个有效的 [PROJECT_ID]

      {
        "resourceNames": [
          "projects/[PROJECT_ID]"
        ],
        "pageSize": 5,
        "filter": "logName=(projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)"
      }
    
  3. 点击执行

如需详细了解查询,请转到高级日志查询

SDK

要使用 Cloud SDK 读取日志条目,请运行以下命令。在每个日志名称中提供有效的 [PROJECT_ID]

gcloud logging read "logName=(projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)"

如需详细了解如何使用 Cloud SDK,请参阅读取日志条目

如需查看审核日志条目示例并了解如何在其中找到最重要的信息,请参阅了解审核日志

导出审核日志

您可以按照导出其他类型日志的方式导出审核日志。如需详细了解如何导出日志,请参阅导出日志。下面是用于导出审核日志的一些应用:

  • 要延长审核日志的保留时间,或者使用更加强大的搜索功能,您可以将审核日志的副本导出到 Google Cloud Storage、BigQuery 或者 Google Cloud Pub/Sub。使用 Cloud Pub/Sub,您可以将内容导出到其他应用、其他代码库和第三方。

  • 要管理您在整个组织中的审核日志,可创建汇总导出接收器,以便从组织中的任何或所有项目导出日志。

  • 如果启用的数据访问审核日志会导致项目超出其日志配额,您可以通过 Logging 导出数据访问审核日志并将其排除。如需了解详情,请转到排除日志

价格

Stackdriver Logging 会针对您明确请求的数据访问审核日志收费。 Firebase 通知控制台不会写入管理员活动审核日志或系统事件审核日志。

如需详细了解审核日志价格,请查看 Stackdriver 价格