隐私政策
生效日期: 2026-03-30
概述
BrewTinker(以下简称“我们”或“本应用”)致力于保护您的隐私。本政策说明我们会收集哪些信息、如何使用这些信息,以及您对个人数据享有的权利。
BrewTinker 围绕"实验优先"的冲泡工作流而设计:帮助您对比变量、记录结果、留存结论。这一产品定位不会改变下文描述的数据收集类别,仅影响产品向用户呈现的方式。
我们收集的信息
- 账户信息:您通过 Apple 登录、Google 登录或邮箱密码登录时提供的电子邮件地址和显示名称。显示名称为可选项,Apple 登录还允许您隐藏真实姓名。
- 冲煮数据:您在应用中录入的咖啡配方、冲煮记录、风味笔记和咖啡豆库存信息。
- 账户标识:启用云同步时,我们使用 Firebase Auth 用户 ID 将云端数据与您的账户关联。
- 应用偏好:语言、外观、通知设置等,仅存储在您的设备本地。
- 您主动添加的照片(可选):如果您为咖啡豆附加图片,该图片会存储在您设备本地(应用沙盒)中。应用使用 Apple's PhotosPicker,因此不会请求广泛的照片库访问权限。只有在云同步启用时(即您已登录且同步处于开启状态),咖啡豆图片才会上传到我们的云存储(Cloudflare R2,经安全代理)并与您的用户身份关联,以支持跨设备访问。您可以通过删除账户来移除这些图片。
- 崩溃诊断(可选,默认开启):Firebase Crashlytics 可能收集堆栈、设备型号和系统版本等崩溃信息,不包含任何个人信息。您可在“设置 → 数据与隐私”中关闭。
- 使用分析(可选,默认关闭):Firebase Analytics 默认不采集数据。只有在您于“设置 → 数据与隐私”中主动开启后,才可能收集应用启动、点击和页面使用等产品交互数据,以帮助我们理解功能采用情况。您也可以随时再次关闭。
我们如何使用您的信息
- 用于在您的设备之间同步冲煮记录和咖啡豆库存。
- 用于提供冲煮计时、实验对比、配方管理和感官分析等核心功能。
- 在您开启崩溃报告时,用于诊断故障并提升稳定性。
- 用于理解产品使用情况并持续改进应用体验。
- 我们不会将您的个人数据出售、出租或提供给第三方用于广告投放。
第三方服务
我们使用以下第三方服务;这些服务分别适用其各自的隐私政策:
- Firebase Authentication(Google LLC)— 负责账户登录和身份识别。
- Firebase Firestore(Google LLC)— 用于跨设备同步时存储您的冲煮数据。
- Cloudflare R2(Cloudflare, Inc.)— 在云同步开启时于我们的云基础设施中存储咖啡豆图片。图片会与您的用户身份关联,并在您删除账户时一并删除。适用 Cloudflare 隐私政策。
- Firebase Crashlytics(Google LLC)— 收集崩溃报告(可选;您可在应用内关闭收集)。
- Firebase Analytics(Google LLC)— 可选的使用分析服务(默认关闭;需用户主动开启)。
- Google Sign-In(Google LLC)— 基于 OAuth 的登录方式;受 Google 隐私政策 约束。
蓝牙
如果您连接兼容的冲煮设备,应用会通过蓝牙实时接收传感器数据。目前已实现的直接设备数据类型包括 BLE 智能秤的重量(例如 Acaia 和 Timemore)以及兼容温度计的温度(例如 Inkbird)。折射仪 TDS 数据、压力数据和流速数据目前不作为直接蓝牙传感器流采集。
在快速冲煮设置中,已连接的 BLE 秤可在冲泡开始前自动填入咖啡粉量。在快速冲煮和配方引导的沉浸式冲泡过程中,应用会记录带时间戳的重量读数。保存冲泡时,捕获的 BLE 数据可能用于填充所保存记录中的咖啡粉量、注水量和水温,具体取决于工作流和可用数据。在 Espresso Dial-In 模式下,您可以一键将当前秤读数捕获到剂量或液重字段。当使用 BLE 秤时,应用可能会根据冲泡记录中存储的带时间戳重量读数推导出本地流速图表。
所有蓝牙数据仅在您的设备本地处理,不会传输到我们的服务器。
通知
每日冲煮提醒通过 Apple 的本地通知系统(UNUserNotificationCenter)在您选择的时间于设备本地调度。我们不使用推送通知,不会上报 APNs token,也不会把提醒内容发送到任何后端服务。
如果您授予通知权限,提醒可能会根据系统通知设置和专注模式,在应用前台、后台或锁屏界面由 iOS 展示。如果您拒绝通知权限,之后仍可在 iOS 系统的 BrewTinker 通知设置中重新开启。
小组件
如果您启用 BrewTinker 小组件,应用会将紧凑的设备端摘要写入 App Group 容器,以便小组件显示。该摘要目前包括当日冲煮次数、累计冲煮数、平均评分、最近冲泡日期和咖啡豆新鲜度提醒(含豆名和剩余天数)。完整的冲煮记录或完整的咖啡豆库存历史不会共享给小组件。这些小组件数据仅存储在您的设备本地,也不会传输到我们的服务器。
数据保留与删除
仅在您的账户处于激活状态期间,我们才会保留相关数据。您可随时在"设置"中打开账户资料页并选择"删除账户"发起删除。确认后,我们会尝试依次执行以下操作:
- 校验当前登录态是否满足执行破坏性账户删除的近期登录要求。
- 删除存储在 Cloudflare R2 中的云端咖啡豆图片对象,并清除您账户下 Firestore 的所有子集合数据(冲煮记录、咖啡豆、配方、器材、tombstones)。
- 销毁并重建本地 Core Data 数据库。
- 清空小组件 App Group UserDefaults。
- 移除用户级同步时间戳和待处理删除记录。
- 撤销 Firebase Auth 凭据,并重置引导流程和隐私同意标记。
如果近期登录校验失败,在您重新认证并重试前,本地或远端数据都不会被删除。部分由第三方服务处理的诊断或分析数据,仍可能受其各自保留策略约束。
开发者说明:上述删除顺序由 AccountDeletionService.swift 实现。本文档中的步骤顺序和编号反映的是截至 2026-04-15 的实际代码执行路径。
您的权利
- 访问权:您可以申请获取我们持有的关于您的数据副本。
- 删除权:您可以随时在应用内删除账户及相关数据。
- 导出权:您可以在"设置 → 数据与隐私 → 导出数据"中将冲煮记录导出为 CSV、JSON 或纯文本。
- 可携带权:导出的数据采用通用格式,便于迁移至其他服务。
- 关闭分析:您可以随时在“设置 → 数据与隐私”中关闭 Firebase Analytics。
- 关闭崩溃报告:您可以随时在“设置 → 数据与隐私”中关闭 Firebase Crashlytics。
支持语言
BrewTinker 当前支持以下语言:英文、简体中文、日语(日本語)、韩语(한국어)和德语(Deutsch)。包括照片处理说明在内的应用内隐私披露均提供这五种语言版本。
访客模式
访客模式是纯本地体验,不会创建 Firebase 账户,也不会向我们的服务器发送数据。卸载应用会删除所有访客数据。
本政策的变更
如果我们对本隐私政策作出重大调整,会更新生效日期,并通过应用内提示或电子邮件通知您。修订版本生效后继续使用 BrewTinker,即视为您接受更新后的政策。
联系我们
如果您对本隐私政策有任何疑问或顾虑,请联系我们: [email protected]。
最后更新: 2026-04-19