Home / Companies / Firebase / Blog / September 2021

September 2021 Summaries

4 posts from Firebase

Filter
Month: Year:
Post Summaries Back to Blog
Firebase Cloud Messaging, a free service for delivering notifications across Android, iOS, and the web, now supports analytics labels that help developers measure how notifications influence user behavior beyond basic send counts. Developers can attach a text-based label to messages sent through the FCM API or Firebase Console campaigns, allowing Google Analytics to associate subsequent user events with particular notifications or audience segments. Firebase Console’s Reports tab can filter notification funnel metrics, including sends, receipts, impressions, and opens, by label, while Google Analytics can use labels as event parameters for deeper analyses such as comparing campaign engagement across seasons or examining user cohorts over time.
Sep 30, 2021 493 words in the original blog post.
Crashlytics uses dSYM files to symbolicate crash reports, but while these files upload automatically for iOS apps without bitcode, bitcode-enabled apps require developers to download updated dSYMs from Apple and manually upload them after each App Store Connect release. The guide describes using the open-source automation tool fastlane to replace this manual workflow with a single command by configuring a Fastfile lane that downloads dSYMs for a selected, live, or latest app version, uploads them to Crashlytics using the app’s GoogleService-Info.plist, and removes the downloaded artifacts afterward. It also notes that Swift Package Manager users must separately obtain and configure the Crashlytics upload-symbols binary, while fastlane can be customized with App Store Connect credentials and bundle identifiers to reduce interactive login prompts.
Sep 27, 2021 1,057 words in the original blog post.
Firestore’s C++ SDK uses FieldValue for Firestore document data, while Variant serves similar roles across other Firebase C++ SDKs such as Realtime Database, Remote Config, and Cloud Functions; although they share primitive types, strings, blobs, arrays, and maps, neither fully encompasses the other, making complete generic conversion impossible. Primitive values convert directly, while string and blob conversion must account for Variant’s ownership distinctions, and arrays and maps can generally be converted recursively, subject to Firestore’s requirement that map keys be strings. Firestore’s prohibition on nested arrays requires application-specific handling, such as rejecting or omitting them, encoding arrays as maps, or using marked intermediary maps to preserve round-trip conversion. Firestore-only types including timestamps, geographic points, document references, and certain sentinel values can be represented as specially marked maps when bidirectional conversion is needed, though document references require access to a Firestore instance and timestamps may instead be represented as epoch milliseconds for Realtime Database compatibility. Stateless sentinels such as Delete and ServerTimestamp can be mapped to compatible representations, but stateful operations such as array unions, removals, and increments cannot be converted losslessly because their underlying values are inaccessible.
Sep 24, 2021 2,533 words in the original blog post.
Firebase Crashlytics has introduced updates for native and Unity-based games aimed at improving crash detection, diagnosis, and integration across engines such as Unreal, Cocos2d, and Unity. Native crash reporting now uses Google’s open-source Crashpad library, which reduces work performed in signal handlers, launches a separate healthy process to capture crash memory, improves reliability on existing Android versions, and captures additional error classes on newer Android releases. Crashlytics has also adopted Breakpad symbol files to produce more accurate NDK stack traces through call frame information, with developers able to enable the format through a Gradle configuration. Updates to the Gradle plugin simplify symbol uploading by removing the need to specify stripped library directories and supporting binaries compiled outside the main application. For Unity, revised crash-grouping heuristics aim to identify application frames rather than irrelevant system frames, while automatic metadata collection records hardware and game-related attributes such as GPU model and screen resolution. Future work will focus on Unity IL2CPP support and capturing crashes in the Unity Engine and native extensions.
Sep 10, 2021 827 words in the original blog post.