refactor(platform_interface): replace Flutter UI and foundation imports with package:meta - #18604
Conversation
…ts with package:meta - Replace accidental `package:flutter/material.dart` and `package:flutter/cupertino.dart` imports in platform interfaces with `package:meta/meta.dart`. - Replace `package:flutter/foundation.dart` imports in pure data models (`Blob`, `FieldPath`, `GeoPoint`, `Timestamp`, `ActionCodeSettings`, `Settings`) with `package:meta/meta.dart`. - Define standalone `_kIsWeb` constant in `Settings` to decouple from `foundation.dart`.
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. |
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request removes Flutter-specific dependencies (such as foundation, material, and cupertino) from various Firebase platform interface packages, replacing them with 'package:meta/meta.dart' to decouple them from the Flutter framework. In 'settings.dart', a local '_kIsWeb' constant is introduced to replace 'kIsWeb'. The feedback suggests optimizing the '_kIsWeb' definition by using 'identical(0, 0.0)' instead of 'bool.fromEnvironment', which avoids the need for a lint suppression comment.
Cleans up superficial Flutter UI (
material.dart,cupertino.dart) andfoundation.dartimports across*_platform_interfacepackages in favor ofpackage:meta/meta.dart.Changes
package:flutter/material.dartandpackage:flutter/cupertino.dartimports incloud_firestore_platform_interface,firebase_remote_config_platform_interface, andfirebase_performance_platform_interfacewithpackage:meta/meta.dart.package:flutter/material.dartimports infirebase_storage_platform_interfaceandfirebase_crashlytics_platform_interface(which already importedpackage:meta).package:flutter/foundation.dartin pure data models (Blob,FieldPath,GeoPoint,Timestamp,ActionCodeSettings) withpackage:meta/meta.dartfor@immutable,@visibleForTesting, and@protected._kIsWebinSettings(cloud_firestore_platform_interface) to eliminatefoundation.dartdependency.Verification
cloud_firestore_platform_interface: 46/46 passedfirebase_auth_platform_interface: 181/181 passedfirebase_storage_platform_interface: 58/58 passedfirebase_crashlytics_platform_interface: 33/33 passedfirebase_remote_config_platform_interface: 11/11 passedfirebase_performance_platform_interface: 65/65 passed