Changes in version 2.0.1 CRAN resubmission - Audited remaining examples: enabled local examples, guarded browser launching, demonstrated the Dynamic Links shutdown with try(), and added temporary-file cleanup to file-writing examples and legacy S4 downloads. - Required 'testthat' 3.2.0 or later for the mocking helpers used by the tests. - Revised the title and description, quoted service and package names, and added the Firebase web service URL. - Guarded interactive setup, Google sign-in, and Shiny examples with if (interactive()) and corrected Shiny example namespaces. - Replaced legacy progress printing with suppressible messages and disabled download progress bars. firebase_config_show() now returns its masked list without printing; use print() to display it explicitly. - Made the configuration wizard session-only by default. Saving now requires save = TRUE and an explicit output path; it never creates a home directory. - Used temporary paths for example downloads and backups, disabled implicit legacy OAuth disk caching, and rendered legacy R Markdown deployments in a temporary directory that is removed after upload. Compatibility and release maintenance - Updated the maintainer email and added the maintainer ORCID. - Updated deprecated authentication wrappers to use the current Identity Toolkit v1 REST endpoints instead of the obsolete v3 endpoints. - Updated the inferred Cloud Storage bucket for newly created Firebase projects to the current PROJECT_ID.firebasestorage.app format. Legacy projects can pass their existing PROJECT_ID.appspot.com bucket explicitly. - Made Cloud Storage uploads compatible with uniform bucket-level access by applying object ACLs only when explicitly requested, and cached service-account access tokens separately for each OAuth scope set. - Documented Realtime Database regional URLs and the package's supported Firebase feature scope. - Marked Firebase Dynamic Links helpers as unavailable following the service's shutdown on August 25, 2025. - Removed stale CRAN availability claims, broken external artwork, temporary repository files, and unused suggested dependencies. Changes in version 2.0.0 Breaking Changes - Minimum R version increased to 4.1.0 - Function naming convention changed to snake_case (old camelCase functions deprecated) - Connection object pattern introduced - most functions now accept a conn parameter New Features Architecture - Modular design: Package split from single 792-line file into 15 focused modules - Connection objects: New firebase_connect() creates reusable connection with configuration - Configuration management: Support for environment variables, config files, and interactive setup - Custom error classes: Firebase-specific error types with detailed messages - Service account support: Full support for server-side authentication via service accounts Authentication - auth_sign_in() - Sign in with email/password (replaces auth()) - auth_anonymous() - Anonymous sign in (replaces anonymous_login()) - auth_create_user() - Create new user (replaces createUser()) - auth_reset_password() - Send password reset email (replaces resetPassword()) - auth_google() - Google OAuth sign in (replaces google_login()) - auth_refresh_token() - Refresh expired tokens (NEW) - auth_get_user() - Get current user info (NEW) - auth_update_profile() - Update user profile (NEW) - auth_delete_user() - Delete user account (NEW) Realtime Database - rtdb_get() - Read data (replaces download()) - rtdb_set() - Write/overwrite data (replaces put()) - rtdb_push() - Add data with auto-key (replaces upload()) - rtdb_update() - Partial update (replaces patch()) - rtdb_delete() - Delete data (replaces delete()) - rtdb_backup() - Full database backup (replaces dataBackup()) - rtdb_query() - Query builder with filtering/sorting (NEW) Cloud Firestore (NEW) - firestore_get() - Get a document from a collection - firestore_set() - Create/overwrite a document - firestore_add() - Add document with auto-generated ID - firestore_update() - Update specific fields in a document - firestore_delete() - Delete a document - firestore_list() - List documents in a collection with pagination - firestore_query() - Query builder for complex queries - Query helpers: fs_where(), fs_order_by(), fs_limit(), fs_offset(), fs_select(), fs_execute() - Support for common Firestore data types (strings, numbers, booleans, timestamps, arrays, maps) Cloud Storage - storage_upload() - Upload files (replaces upload_storage()) - storage_download() - Download files (NEW) - storage_delete() - Delete files (replaces delete_storage()) - storage_list() - List files (replaces list_storage()) - storage_get_metadata() - Get file metadata (replaces get_storage()) - storage_get_url() - Get download URL (replaces get_url()) - storage_upload_folder() - Upload folder (replaces upload_folder()) Dynamic Links - dynlink_create() - Create short links (replaces get_dynamic_link()) - Legacy Dynamic Links helpers are retained for compatibility. Firebase Dynamic Links shut down on August 25, 2025, so these helpers no longer make API requests. Configuration - firebase_connect() - Create connection object (NEW) - firebase_config_set() - Set session configuration (NEW) - firebase_config_get() - Get configuration value (NEW) - firebase_config_load() - Load from YAML file (NEW) - firebase_config_wizard() - Interactive setup (NEW) Utilities - path_sanitize() - Clean Firebase paths (replaces path_check()) - FirebaseToken - R6 class for token management with auto-refresh (NEW) - ServiceAccountCredentials - R6 class for service account auth (NEW) Deprecated Functions The following functions are deprecated but still work. They will show deprecation warnings: | Deprecated | Use Instead | |------------|-------------| | auth() | auth_sign_in() | | anonymous_login() | auth_anonymous() | | createUser() | auth_create_user() | | resetPassword() | auth_reset_password() | | google_login() | auth_google() | | upload() | rtdb_push() | | download() | rtdb_get() | | put() | rtdb_set() | | patch() | rtdb_update() | | delete() | rtdb_delete() | | dataBackup() | rtdb_backup() | | upload_storage() | storage_upload() | | delete_storage() | storage_delete() | | list_storage() | storage_list() | | get_storage() | storage_get_metadata() | | get_url() | storage_get_url() | | upload_folder() | storage_upload_folder() | | get_dynamic_link() | dynlink_create() | | path_check() | path_sanitize() | Infrastructure - CI migrated from Travis CI to GitHub Actions - Test credentials removed from source code (now via environment variables) - Added test helpers for safe credential handling - Code coverage reporting via Codecov Dependencies Added - R6 (>= 2.5.0) - For token and credential classes - openssl (>= 2.0.0) - For JWT signing - yaml (>= 2.3.0) - For config file support Updated - httr (>= 1.4.0) - jsonlite (>= 1.8.0) - curl (>= 5.0.0) Removed - Removed hardcoded test credentials - Removed deprecated .travis.yml Changes in version 1.16 - Last release of v1.x series - See GitHub releases for historical changes