Apple 要求在 App Store 上发布应用程序的开发者披露有关其应用程序数据使用的某些信息。 Apple 已宣布,从 2020 年 12 月 8 日开始,新应用和应用更新需要进行这些披露。本文档包含 Firebase Apple 平台库行为,根据 Apple 的指南可能需要披露。
如果您使用任何涉及额外数据的可选产品功能或参与任何涉及额外数据的新产品功能测试,请务必检查这些功能或测试是否需要额外数据披露。
为确保您的应用披露准确无误,我们建议您始终使用每个 Firebase SDK 的最新版本。
Firebase 用户代理
Firebase 用户代理是从大多数 Firebase SDK 收集的信息包,包括以下内容:设备、操作系统、应用程序包 ID 和开发者平台。用户代理从不与用户或设备标识符相关联,Firebase 团队使用它来确定平台和版本采用情况,以便更好地为 Firebase 功能决策提供信息。
核
Firebase 核心
- 不收集数据。
FirebaseCore 诊断
一直收集
谷歌实用程序
- 不收集数据,但包括其他 SDK 可能用于收集数据的网络实用程序。
谷歌数据传输
包括可被其他 SDK 用来收集数据的网络实用程序。
一直收集
- 收集Firebase 用户代理。
- 收集有关 SDK 性能的元数据,例如客户端日志事件缓存的大小以及由于各种原因而丢弃的客户端日志事件的数量,以监控和维护产品质量。
A/B 测试
FirebaseABTesting
A/B 测试不收集数据,而是使用从 Google Analytics 收集的数据来创建和管理实验组。有关更多详细信息,请参阅分析页面。
谷歌分析
谷歌分析数据收集信息可以在这篇支持文章中找到。
应用检查
FirebaseAppCheck
依赖于使用
- 如果安装了 DeviceCheck 提供程序,则从DeviceCheck收集
DCDevice
令牌。 - 如果安装了 App Attest 提供程序,则从App Attest收集证明对象和断言对象。
应用分发
App Distribution SDK 仅用于 beta 测试。提交到 App Store 时,请勿在您的应用程序中包含 App Distribution SDK。
验证
Firebase 身份验证
一直收集
- 为用户身份验证目的生成和存储标识符。
依赖于使用
- 如果开发人员为用户提供显示名称,则收集显示名称。
- 收集开发人员在使用电子邮件密码或电子邮件链接身份验证时提供的用户电子邮件地址,或者在开发人员使用联合身份时收集联合提供商的响应中包含的用户电子邮件地址。
- 在使用电话验证时或如果将用户的电话号码添加为身份验证方法,则收集开发人员提供的用户电话号码。也在 SMS-as-second-factor authentication 流程中收集。
- 如果开发人员将第三方身份验证提供程序与 Firebase 身份验证一起使用,则收集与第三方身份验证提供程序相关的联系信息。例如,如果开发人员使用 Facebook 身份验证,则用户的标识符可能会链接到他们的 Facebook 个人资料,具体取决于授予的范围。有关详细信息,请参阅身份验证提供程序的文档。
- 如果应用程序链接到游戏中心,则存储用户的游戏中心 ID。
崩溃分析器
FirebaseCrashlytics
一直收集
- 当应用程序崩溃时收集堆栈跟踪和相关的应用程序状态。
- 收集设备和操作系统信息以帮助调试崩溃。
依赖于使用
- 收集开发人员附加到崩溃报告的任何自定义键、日志和自由文本用户 ID。还使用自定义堆栈跟踪收集任何开发人员定义的非致命事件。
- 如果 Crashlytics 与 Google Analytics 一起使用,则会收集“面包屑”日志。这些日志在崩溃之前立即识别用户操作以及崩溃计数。
实时数据库
Firebase 数据库
一直收集
动态链接
Firebase 动态链接
一直收集
- 临时收集设备数据,包括设备的屏幕尺寸、语言、操作系统版本、捆绑 ID、IP 地址和 Firebase SDK 版本,用于延迟深度链接(应用安装后的深度链接)。
默认收集
- 如果存在
FirebaseAnalytics
框架,则通过 Google Analytics 自动记录链接交互事件。要禁用自动事件记录,请从应用中移除FirebaseAnalytics
。 - 在首次应用启动时临时收集设备粘贴板中的动态链接 URL(如果可用)。开发人员可以通过在应用程序的
Info.plist
文件中将FirebaseDeepLinkPasteboardRetrievalEnabled
属性设置为NO
来禁用粘贴板。
云防火墙
FirebaseFirestore
一直收集
云函数
Firebase 函数
一直收集
- 收集函数调用元数据,包括函数调用者的函数名称和 IP 地址。
应用内消息
FirebaseInAppMessaging
一直收集
- 记录与应用内消息的交互。这些交互(印象、点击、解雇)通过谷歌分析记录。 Firebase 还会记录交互,以帮助开发人员评估消息传递活动的有效性。
Firebase 安装
Firebase 安装
一直收集
- 生成不唯一标识用户或物理设备的每个安装标识符。
- 收集Firebase 用户代理。
- 收集网络请求发送方 IP 地址,可用于调试目的。收集的 IP 地址暂时保留。
实例ID
一直收集
- 生成不唯一标识用户或物理设备的每个安装标识符。
- 生成并收集 FCM 注册令牌,这是
FirebaseMessaging
用于推送通知的应用实例 ID。 - 记录 APNs 令牌并将其与 Firebase 实例 ID(FCM 注册令牌)相关联。
- 收集设备型号、语言、时区、操作系统版本、应用程序标识符和应用程序版本以生成 FCM 注册令牌。
云消息传递
Firebase 消息传递
一直收集
- 收集主题订阅和取消订阅的应用标识符和应用版本。
默认收集
- 如果存在
FirebaseAnalytics
框架,则通过 Google Analytics 自动记录通知交互。要禁用此行为,请从您的应用中移除FirebaseAnalytics
。
Firebase 机器学习
FirebaseMLCommon
- 不收集任何数据。
FirebaseMLModelDownloader
一直收集
- 收集 ML 模型下载元数据,例如下载事件、删除事件和错误。
FirebaseMLModelInterpreter
默认收集
- 收集 ML 推理元数据,例如推理持续时间和错误率。要禁用,请将
ModelInterpreter.isStatsCollectionEnabled
属性设置为false
。
FirebaseMLVision
默认收集
- 收集 ML Vision 模型元数据,例如创建和检测事件。要禁用,请将
Vision.isStatsCollectionEnabled
属性设置为false
。
性能监控
Firebase 性能
一直收集
- 收集 IP 地址以提供基于地理位置的性能数据分段。
- 收集应用程序性能指标,例如应用程序启动时间和网络请求延迟,以及开发人员指定的自定义跟踪来衡量应用程序性能。
- 收集应用程序的 CPU/内存使用情况,以提供应用程序性能的时间线视图。
- 收集设备信息、操作系统信息、应用程序信息,以针对不同的设备段过滤性能数据。
远程配置
Firebase 远程配置
一直收集
- 收集Firebase 用户代理。
- 收集设备的国家/地区代码、语言代码、时区、操作系统版本、Firebase Apple 应用 ID 和捆绑 ID,以便定位基于此数据的参数。操作系统版本和 SDK 版本也被收集和汇总,以了解使用趋势并告知产品方向。