Skip to content

fix: disable Firebase diagnostics data collection - #1053

Open
QuantumExplorer wants to merge 1 commit into
developfrom
fix/disable-firebase-data-collection
Open

fix: disable Firebase diagnostics data collection#1053
QuantumExplorer wants to merge 1 commit into
developfrom
fix/disable-firebase-data-collection

Conversation

@QuantumExplorer

@QuantumExplorer QuantumExplorer commented Aug 24, 2026

Copy link
Copy Markdown
Member

What

Adds FirebaseDataCollectionDefaultEnabled = false to both app targets' Info.plists.

Why

This came out of a community question in the Russian Telegram group asking whether analytics/tracking are enabled in the new iOS build. The good news is there is no analytics SDK in the iOS app — no FirebaseAnalytics, no GoogleAppMeasurement, Crashlytics, Mixpanel, Amplitude, Sentry or AppsFlyer are linked, there are zero logEvent/trackEvent call sites, and there is no IDFA/ATT surface at all.

But FirebaseCoreDiagnostics is linked into both targets (it is a transitive dependency of FirebaseCore), and it starts from the unconditional [FIRApp configure] at DashWallet/AppDelegate.m:113. Up to once per day it sends Google a proto over GoogleDataTransport containing:

  • bundle identifier
  • device model
  • iOS version
  • Firebase SDK versions
  • which Firebase services are installed

FIRCoreDiagnostics.sendDiagnosticsData returns early when FirebaseDataCollectionDefaultEnabled is false:

NSNumber *isDataCollectionDefaultEnabled =
    diagnosticObjects[kFIRCDIsDataCollectionDefaultEnabledKey];
if (isDataCollectionDefaultEnabled && ![isDataCollectionDefaultEnabled boolValue]) {
  return;
}

That key was absent from both DashWallet/Info.plist and DashPay/dashpay-info.plist, so it defaulted to enabled. This PR sets it explicitly.

Scope

The flag gates Firebase's diagnostics/telemetry collection only. Firebase Storage operations — the Explore Dash merchant database download from gs://dash-wallet-firebase.appspot.com — are unaffected, as is everything else in the app.

Verification

  • plutil -lint passes on both plists.
  • plutil -extract FirebaseDataCollectionDefaultEnabled raw returns false for both.

Info.plist-only change; no source or build-setting changes.

Related

Two companion PRs address the other two outbound channels found in the same audit: the unused Firebase Dynamic Links SDK (which fingerprints the device on first launch) and a per-foreground IP geolocation lookup to ip-api.com.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Privacy
    • Firebase data collection is now disabled by default.
    • Users must explicitly enable data collection before analytics data is collected.

FirebaseCoreDiagnostics is linked into both app targets and starts from
the unconditional `[FIRApp configure]` in AppDelegate. Once a day it
sends Google a proto containing the bundle ID, device model, iOS
version, Firebase SDK versions and the list of installed Firebase
services, via GoogleDataTransport.

FIRCoreDiagnostics.sendDiagnosticsData bails out when
`FirebaseDataCollectionDefaultEnabled` is false, but the key was absent
from both Info.plists, so it defaulted to enabled. Set it explicitly.

This only gates diagnostics/telemetry collection; Firebase Storage
operations (the Explore Dash merchant database download) are unaffected.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 24, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 83fafaf4-b55a-414b-8d08-47bd36cbb05f

📥 Commits

Reviewing files that changed from the base of the PR and between bdfb512 and c4b8829.

📒 Files selected for processing (2)
  • DashPay/dashpay-info.plist
  • DashWallet/Info.plist

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

Both app property lists add FirebaseDataCollectionDefaultEnabled with a false value.

Changes

Firebase collection defaults

Layer / File(s) Summary
Update app property lists
DashPay/dashpay-info.plist, DashWallet/Info.plist
Both app bundles disable Firebase data collection by default.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to c4b88

This localized configuration change disables Firebase diagnostics collection for both app targets without changing app functionality or Firebase Storage behavior. No actionable merge-blocking risk remains after normal checks and review.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: disabling Firebase diagnostics data collection.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (2 skipped: 2 unsupported.)
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/disable-firebase-data-collection

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant