🔥FlutterFire is a set of Flutter plugins that enable Flutter apps to use Firebase services.

Overview


FlutterFire

all_plugins GitHub Workflow Status Follow on Twitter


FlutterFire is a set of Flutter plugins that enable Flutter apps to use Firebase services. You can follow an example that shows how to use these plugins in the Firebase for Flutter codelab.

Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase. Flutter is used by developers and organizations around the world, and is free and open source.

Note: FlutterFire is still under development (see roadmap), and some APIs and platforms might not be available yet. Feedback and Pull Requests are most welcome!

Plugins

Table of contents:


firebase_analytics

firebase_analytics firebase_analytics pub points

Google Analytics for Firebase provides automatic captures of certain key application events and user properties, and you can define your own custom events to measure the things that uniquely matter to your application. [Learn More]

[View Source]

Platform Support

Android iOS MacOS Web
✔️ ✔️ ✔️ ✔️

firebase_auth

firebase_auth firebase_auth pub points

Firebase Authentication provides easy-to-use APIs to authenticate users to your app. It supports authentication using passwords, phone numbers, popular federated identity providers like Google, Facebook and Twitter, and more. [Learn More]

[View Source]

Platform Support

Android iOS MacOS Web
✔️ ✔️ ✔️ ✔️

cloud_firestore

cloud_firestore cloud_firestore pub points

Cloud Firestore is a NoSQL document database that lets you easily store, sync, and query data for your mobile and web apps - at global scale. [Learn More]

[View Documentation] [View Source]

Platform Support

Android iOS MacOS Web
✔️ ✔️ ✔️ ✔️

cloud_functions

cloud_functions cloud_functions pub points

The Cloud Functions for Firebase plugin let you call functions directly from within your app. To call a function from your app in this way, write and deploy an HTTPS Callable function in Cloud Functions, and then add client logic to call the function from your app. [Learn More]

[View Source]

Platform Support

Android iOS MacOS Web
✔️ ✔️ ✔️ ✔️

firebase_messaging

firebase_messaging pub points

Firebase Cloud Messaging (FCM) provides a reliable and battery-efficient connection between your server and devices that allows you to deliver and receive messages and notifications on iOS & Android, at no cost. [Learn More]

[View Source]

Platform Support

Android iOS MacOS Web
✔️ ✔️ ✔️ ✔️

firebase_storage

firebase_storage firebase_storage pub points

Cloud Storage is designed to help you quickly and easily store and serve user-generated content, such as photos and videos. [Learn More]

[View Source]

Platform Support

Android iOS MacOS Web
✔️ ✔️ ✔️ ✔️

firebase_core

firebase_core firebase_core pub points

Firebase Core provides APIs to manage your Firebase application instances and credentials. This plugin is required by all FlutterFire plugins.

[View Documentation] [View Source]

Platform Support

Android iOS MacOS Web
✔️ ✔️ ✔️ ✔️

firebase_crashlytics

firebase_crashlytics pub points

Firebase Crashlytics helps you track, prioritize, and fix stability issues that erode app quality, in realtime. Spend less time triaging and troubleshooting crashes and more time building app features that delight users. [Learn More]

[View Source]

Platform Support

Android iOS MacOS Web
✔️ ✔️

firebase_database

firebase_database firebase_database pub points

The Firebase Realtime Database is a cloud-hosted NoSQL database that lets you store and sync data between your users in realtime. [Learn More]

[View Source]

Platform Support

Android iOS MacOS Web
✔️ ✔️ ✔️

firebase_dynamic_links

firebase_dynamic_links pub points

Dynamic Links are smart URLs that allow you to send existing and potential users to any location within your iOS or Android app. [Learn More]

[View Source]

Platform Support

Android iOS MacOS Web
✔️ ✔️

firebase_in_app_messaging

firebase_in_app_messaging pub points

Firebase In-App Messaging helps you engage users who are actively using your app by sending them targeted and contextual messages that nudge them to complete key in-app actions - like beating a game level, buying an item, or subscribing to content. [Learn More]

[View Source]

Platform Support

Android iOS MacOS Web
✔️ ✔️

firebase_ml_custom

firebase_ml_custom pub points

Use Firebase ML to deploy custom models. [Learn More]

[View Source]

Platform Support

Android iOS MacOS Web
✔️ ✔️

firebase_ml_vision

firebase_ml_vision pub points

Use Firebase ML turn-key solutions with the Cloud Vision APIs. [Learn More]

[View Source]

Platform Support

Android iOS MacOS Web
✔️ ✔️

firebase_performance

firebase_performance firebase_performance pub points

Get insights into how your app performs from your users’ point of view, with automatic and customized performance tracing. [Learn More]

[View Source]

Platform Support

Android iOS MacOS Web
✔️ ✔️

firebase_remote_config

firebase_remote_config firebase_remote_config pub points

With Firebase Remote Config, you can change the behavior and appearance of your app on the fly from the Firebase console, and then track performance in Google Analytics for Firebase. [Learn More]

[View Source]

Platform Support

Android iOS MacOS Web
✔️ ✔️ ✔️

Issues

Please file FlutterFire specific issues, bugs, or feature requests in our issue tracker.

Plugin issues that are not specific to FlutterFire can be filed in the Flutter issue tracker.

Contributing

If you wish to contribute a change to any of the existing plugins in this repo, please review our contribution guide and open a pull request.

Status

Status: Experimental

This repository is maintained by Googlers but is not a supported Firebase product. Issues here are answered by maintainers and other community members on GitHub on a best-effort basis.

Issues
  • [firebase_messaging] iOS 13 push notification NOT working

    [firebase_messaging] iOS 13 push notification NOT working

    Push notification does not seem to work on iOS 13 device nor on my iOS 12.4.1 device on stable 1.9.1. Seems to be 2 separate issues as well.

    1. in Flutter Stable 1.9.1, push notifications do not appear on my iOS 12.4.1 device, when the always worked before on older flutter versions.
    2. iOS 13 device does not receive push notifications at all

    Some reading available from oneSignal https://onesignal.com/blog/ios-13-introduces-4-breaking-changes-to-notifications/

    I updated my device OS(personal) version to 13, cannot further test without downgrading it back to 12.4.1. and I do not have a spare iPhone available.

    Thank you

    Also for other users, can you please input our own issue related to the mentioned. Things such as current physical device iOS software version and flutter channel along with its version number. so we can compile a list of where in flutter and iOS(versions) things just stopped working.

    Push notification is and should be very ### critical part of a persons or companies application when used right. I hope we can address the issues and come up with a solution.

    type: bug impact: crowd plugin: messaging 
    opened by kroikie 264
  • [cloud_firestore] Xcode build extremely slow

    [cloud_firestore] Xcode build extremely slow


    EDIT (@Salakar): See https://github.com/FirebaseExtended/flutterfire/issues/2751 for a solution.


    Summary of Issue

    Simply adding cloud_firestore to pubspec.yaml results in a huge increase in iOS xcode build times. The issue can be recreate with nothing more than a simple flutter create application and minor changes to pubspec.yaml.

    MacOS Mojave 10.14.6
    Xcode 10.3
    
    > flutter --version
    Flutter 1.8.4-pre.91 • channel master • https://github.com/flutter/flutter.git
    Framework • revision 8fdd759225 (11 hours ago) • 2019-08-04 00:56:23 -0400
    Engine • revision c8f4f5d5cc
    Tools • Dart 2.5.0 (build 2.5.0-dev.1.0 9bb446aae1)
    
    > flutter create test_cloud_firestore
    > cd test_cloud_firestore
    

    Without cloud_firestore

    Just to show that it is specifically the cloud_firestore plugin that causes this issue I will add some other firebase plugins to pubspec.yaml:

    firebase_core: ^0.4.0+1
    firebase_analytics: ^4.0.2
    

    Now we build the app:

    > flutter packages get
    > time flutter build ios
    ....
    Xcode build done. 
    real	0m41.014s
    

    Okay that looks reasonable.

    With cloud_firestore

    Simply add the latest version of cloud_firestore plugin to pubspec.yaml (no other changes):

    cloud_firestore: ^0.12.9
    

    Now we build the application again:

    > flutter packages get
    > time flutter build ios
    ....
    Xcode build done. 
    real	6m40.982s
    

    Yes... that is right. A six minute increase in iOS build times just from adding the cloud_firestore plugin to pubspec.yaml. Again, no changes were made to the flutter create generated application, this is simply changes to pubspec.yaml.

    Logs

    I did confirm that this issue persists on other flutter channels as well as other later versions of cloud_firestore plugin.

    > flutter doctor -v
    [✓] Flutter (Channel master, v1.8.4-pre.91, on Mac OS X 10.14.6 18G84, locale en-US)
        • Flutter version 1.8.4-pre.91 at /Users/taza/Applications/flutter
        • Framework revision 8fdd759225 (11 hours ago), 2019-08-04 00:56:23 -0400
        • Engine revision c8f4f5d5cc
        • Dart version 2.5.0 (build 2.5.0-dev.1.0 9bb446aae1)
    
     
    [✓] Android toolchain - develop for Android devices (Android SDK version 29.0.1)
        • Android SDK at /Users/taza/Library/Android/sdk
        • Android NDK location not configured (optional; useful for native profiling support)
        • Platform android-29, build-tools 29.0.1
        • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
        • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
        • All Android licenses accepted.
    
    [✓] Xcode - develop for iOS and macOS (Xcode 10.3)
        • Xcode at /Applications/Xcode.app/Contents/Developer
        • Xcode 10.3, Build version 10G8
        • CocoaPods version 1.7.5
    
    [✓] Android Studio (version 3.4)
        • Android Studio at /Applications/Android Studio.app/Contents
        • Flutter plugin version 37.1.1
        • Dart plugin version 183.6270
        • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
    
    [✓] VS Code (version 1.36.1)
        • VS Code at /Applications/Visual Studio Code.app/Contents
        • Flutter extension version 3.3.0
    
    type: bug impact: critical impact: crowd plugin: cloud_firestore platform: ios 
    opened by kroikie 134
  • [cloud_firestore] Added Flutter web support

    [cloud_firestore] Added Flutter web support

    Description

    • Created cloud_firestore_platform_interface to host A common platform interface for the cloud_firestore plugin.
    • Created cloud_firestore_web to host the web implementation for Firestore
    • Changed cloud_firestore implementation to delegate to method_channel_xyz in cloud_firestore_platform_interface when necessary
    • Relocated tests from cloud_firestore to cloud_firestore_platform_interface

    This PR is created for gathering feedback on the approach and check mergeability.

    Todo items This PR is created for gathering feedback on the approach. The remaining steps are

    • [x] create PR and merge cloud_firestore_platform_interface
    • [x] create PR and merge cloud_firestore_web
    • [x] update cloud_firestore to use published version of cloud_firestore_web & cloud_firestore_platform_interface
    • [x] Add unit tests for cloud_firestore_web
    • [x] Add unit tests to verify that cloud_firestore delegates method calls to delegate
    • [x] Add unit tests for cloud_firestore_platform_interface
    • [x] Address PR comments and feedback
    • [x] Delay FirebasePlatform._instance initialisation until it's called for the first time (lazy init)
    • [x] Handle encoding/decoding DocumentReference
    • [x] Fix Query method delegation (currently broken ☹️)
    • [x] Add support for Transaction
    • [x] Add support for WriteBatch
    • [x] Web & mobile specific implementation for GeoPoint
    • [x] Web & mobile specific implementation for Blob
    • [x] Fix settings bug mentioned here https://github.com/FirebaseExtended/flutterfire/pull/1670#issuecomment-567307817

    Related Issues

    Checklist

    Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

    • [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
    • [x] If the pull request affects only one plugin, the PR title starts with the name of the plugin in brackets (e.g. [cloud_firestore])
    • [x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See [Contributor Guide]).
    • [x] All existing and new tests are passing.
    • [x] I updated/added relevant documentation (doc comments with ///).
    • [x] The analyzer (flutter analyze) does not report any problems on my PR.
    • [x] I read and followed the [Flutter Style Guide].
    • [x] I updated pubspec.yaml with an appropriate new version according to the [pub versioning philosophy].
    • [x] I updated CHANGELOG.md to add a description of the change.
    • [x] I signed the [CLA].
    • [x] I am willing to follow-up on review comments in a timely manner.

    Breaking Change

    Does your PR require plugin users to manually update their apps to accommodate your change?

    • [ ] Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
    • [x] No, this is not a breaking change.
    cla: yes blocked: customer-response 
    opened by amrfarid140 100
  • 🐛 [firebase_ml_vision 0.10.0] Core depends on CoreOnly 7.3.0 but ML pods depend on 5.0.0 causing pod install failure

    🐛 [firebase_ml_vision 0.10.0] Core depends on CoreOnly 7.3.0 but ML pods depend on 5.0.0 causing pod install failure

    Bug report

    [!] CocoaPods could not find compatible versions for pod "Firebase/CoreOnly":
      In Podfile:
        Firebase/MLVisionBarcodeModel was resolved to 5.0.0, which depends on
          Firebase/CoreOnly (= 5.0.0)
    
        firebase_core (from `.symlinks/plugins/firebase_core/ios`) was resolved to 0.6.0, which depends on
          Firebase/CoreOnly (= 7.3.0)
    

    Steps to reproduce the behavior:

    1. Updated all firebase packages to the latest version. firebase_core: ^0.6.0 firebase_ml_vision: ^0.10.0
    2. Updated in Podfile pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '7.3.0'
    3. Executed in terminal pod deintegrate && rm Podfile.lock && pod install
    4. The above warning appears.

    Additional Info: The portion in podfile as follows:

    target 'Runner' do
      pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '7.3.0'
      pod 'Firebase/MLVisionTextModel'
      pod 'Firebase/MLVisionBarcodeModel'
    

    No issues on Flutter Doctor.

    Reverted back to: firebase_core: ^0.5.3 firebase_ml_vision: ^0.9.10 pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '6.33.0'

    Any resolution to this?

    type: bug impact: crowd plugin: ml_vision platform: ios 
    opened by iamshaunwu 98
  • [firebase_messaging] Android v2 embedding crashes

    [firebase_messaging] Android v2 embedding crashes

    Describe the bug Since updating my app to the Android v2 embedding I've been getting reports in Crashlytics concerning ensureInitializationComplete must be called after startInitialization io.flutter.embedding.engine.loader.FlutterLoader.ensureInitializationComplete.

    The Flutter 1.12 upgrade guide says to remove all references to the startInitialization or ensureInitializationComplete methods but I see 2 references to these methods: here and here.

    To Reproduce Steps to reproduce the behavior:

    1. Upgrade app to v2 embedding.
    2. Start app and then close it.
    3. Send notification from the Firebase Notification Composer.
    4. Notice app crash notification on device.
    5. See error or incorrect behavior

    I have not seen the issue when I leave the app open and send the notification.

    Expected behavior Notification displayed normally while app is closed.

    Additional context Here is what the Crashlytics report looks like:

    Fatal Exception: java.lang.RuntimeException
    Unable to create service io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService: java.lang.IllegalStateException: ensureInitializationComplete must be called after startInitialization
    android.app.ActivityThread.handleCreateService (ActivityThread.java:3746)
    android.app.ActivityThread.access$1400 (ActivityThread.java:235)
    android.app.ActivityThread$H.handleMessage (ActivityThread.java:1784)
    android.os.Handler.dispatchMessage (Handler.java:106)
    android.os.Looper.loop (Looper.java:214)
    android.app.ActivityThread.main (ActivityThread.java:6986)
    java.lang.reflect.Method.invoke (Method.java)
    com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:494)
    com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1445)
    
    Caused by java.lang.IllegalStateException
    ensureInitializationComplete must be called after startInitialization
    io.flutter.embedding.engine.loader.FlutterLoader.ensureInitializationComplete (FlutterLoader.java:153)
    io.flutter.view.FlutterMain.ensureInitializationComplete (FlutterMain.java:80)
    io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService.onCreate (FlutterFirebaseMessagingService.java:71)
    android.app.ActivityThread.handleCreateService (ActivityThread.java:3734)
    android.app.ActivityThread.access$1400 (ActivityThread.java:235)
    android.app.ActivityThread$H.handleMessage (ActivityThread.java:1784)
    android.os.Handler.dispatchMessage (Handler.java:106)
    android.os.Looper.loop (Looper.java:214)
    android.app.ActivityThread.main (ActivityThread.java:6986)
    java.lang.reflect.Method.invoke (Method.java)
    com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:494)
    com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1445)
    
    type: bug type: documentation impact: crowd plugin: messaging 
    opened by cranst0n 96
  • [firebase_messaging] onMessage/onResume is called twice on Android/iOS

    [firebase_messaging] onMessage/onResume is called twice on Android/iOS

    Describe the bug The onMessage callback is always called twice

    To Reproduce Steps to reproduce the behavior:

    1. Setup the plugin, do a print statement in the onMessage callback
    2. Keep the app in the foreground
    3. Send a FCM message
    4. 2 print on the console

    Expected behavior Only one print on the console

    Additional context I don' t have the same issue with onBackgroundMessage. It's called once as expected

    type: bug impact: crowd plugin: messaging platform: android platform: ios 
    opened by woprandi 87
  • FlutterFire Roadmap

    FlutterFire Roadmap

    Hey all :wave:

    Today I’m excited to announce the upcoming changes and roadmap for the FlutterFire plugins.

    The overall mission of FlutterFire is to provide a set of high quality set of plugins for developers to allow them to build Flutter apps using Firebase. As Flutter grows, we want to ensure that the FlutterFire plugins grow with it, including Web support and enabling the possibility to support other platforms such as Desktop.

    We’ve recently started a triage of repository issues to understand the current state of the repository, and get a feel for the biggest pain points and challenges developers are facing. The triage has enabled us to focus our efforts on bringing the library to production ready quality along with overall quality of life updates to FlutterFire.

    Our top priorities are to introduce a dedicated documentation website, review each plugin in importance order (based on usage & current state) and tackle critical issues (such as slow Cloud Firestore build times).

    As we review each plugin by group, we’ll be focusing efforts on the following areas:

    • Testing: covering the public API (as much as possible) with dedicated unit and integration tests is incredibly important to us, so we can be confident in adding new features, squashing bugs and opening up the repository to more external contributors.

    • Supporting Federated Plugins: we want to ensure that all plugins can be integrated with the platforms Flutter supports. Right now only 4 plugins are Federated (Core, Cloud Firestore, Analytics & Cloud Functions). As we move forwards, each plugin will be converted into a Federated setup to allow other platforms to integrate with FlutterFire.

    • Documentation: although the reference API is a great place to understand the plugins, the goal of FlutterFire is to allow developers of all backgrounds and experience to get up and running with as little friction as possible. We’ll be providing documentation on how to setup Firebase with your Flutter apps, get started with using each plugin within your app and guides on addressing how the plugins can integrate with the wider Flutter & Firebase ecosystems, helping to reduce the barrier to entry when working with the plugins.

    As explained, we’ll be tackling the plugins in importance order. As it stands, the ordering is as follows:

    1. 🟢 Core Status: complete, merged & stable release shipped.
    2. 🟢 Cloud Firestore Status: complete, merged & stable release shipped.
    3. 🟢 Authentication Status: complete, merged & stable release shipped.
    4. 🟢 Crashlytics Status: complete, merged & stable release shipped.
    5. 🟢 Cloud Storage Status: complete, merged & stable release shipped.
    6. 🟢 Cloud Functions Status: complete, merged & stable release shipped.
    7. 🟢 Cloud Messaging (FCM) Status: complete, merged & stable release shipped.

    We’ve yet to decide on the order of the remaining plugins, we’ll update you as we progress. Also, the Google team are heavily engaged with the AdMob plugin and will continue to maintain that as a top priority in parallel with this work.

    We want to ensure that all plugins are interoperable as we work through them, allowing developers to see the benefits from the on-going work as soon as they are available. Therefore we’ll be doing some immediate changes across the board which will allow the newly updated plugins to be “backwards compatible” with plugins that have not yet been updated as part of this process.

    To achieve this, we’ll be updating all FlutterFire plugins with the following top level changes:

    • Dependency on Core: The most significant change is to configure every plugin to have a hard dependency on firebase_core. This will both help reduce installation steps, improve API consistency and follow conventions of the Firebase SDKs.

    • Fixed Firebase SDK versioning: all plugins will be set to a fixed version of the underlying Firebase SDK (however will be overridable if desired), allowing us to be confident developers will be using the same SDK versions we’ve tested against.

    • Consistent public API: developers coming from other platforms should be familiar with the public API FlutterFire offers, so we’ll work on bringing the API in-line with the Firebase APIs (where possible). See the Dart design style guide to learn more.

    • Reducing installation steps: installing and getting started with FlutterFire should be as painless as possible. We’re working towards reducing the amount of manual setup steps required to integrate the plugins.

    • Adding missing features: the issue triage and API review has highlighted a number of missing features which will be implemented as part of the plugin updates. In general if the underlying platform Firebase SDK supports a feature cross-platform then so should FlutterFire.

    These changes will introduce a number of breaking changes, though we’ll do our best to keep these to a minimum and ensure that the documentation provides full change logs & migration guides to help make the upgrade as painless as possible.

    We’ll be updating this issue as we progress through the upgrade to the plugins so please check back regularly.


    The following GitHub users will primarily be focusing on this work going forwards:

    • @dackers86
    • @Ehesp
    • @helenaford
    • @kirstywilliams
    • @russellwheatley
    • @Salakar

    If you have any urgent issues / pull requests that you feel you would like us to look at sooner - feel free to tag us in using the @FirebaseExtended/invertase GitHub team and we'll try our best to look at them as soon as possible.


    Flutter blog post announcement: Flutter Package Ecosystem Update

    New Flutter Favorites, Apple Sign In, and bringing prerelease Flutter plugins into production


    If you're on Twitter, we'll be tweeting regular updates on the @FlutterFireDev account - feel free to follow along there also.

    opened by Salakar 84
  • [firebase_storage] Implement

    [firebase_storage] Implement "listAll" function

    Description

    We implemented the "listAll" function for both Android and iOS.

    Related Issues

    https://github.com/FirebaseExtended/flutterfire/issues/83

    Checklist

    Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

    • [x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
    • [x] If the pull request affects only one plugin, the PR title starts with the name of the plugin in brackets (e.g. [cloud_firestore])
    • [x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
    • [x] All existing and new tests are passing.
    • [x] I updated/added relevant documentation (doc comments with ///).
    • [x] The analyzer (flutter analyze) does not report any problems on my PR.
    • [x] I read and followed the Flutter Style Guide.
    • [x] The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
    • [x] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
    • [X] I updated CHANGELOG.md to add a description of the change.
    • [x] I signed the CLA.
    • [x] I am willing to follow-up on review comments in a timely manner.

    Breaking Change

    Does your PR require plugin users to manually update their apps to accommodate your change?

    • [ ] Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
    • [x] No, this is not a breaking change.
    cla: yes 
    opened by danysz 74
  • [firebase_crashlytics] Migrate to new Crashlytics SDK

    [firebase_crashlytics] Migrate to new Crashlytics SDK

    Description

    This PR updates the Crashlytics implementation to use the new SDK, which doesn't use the Fabric SDK anymore: https://firebase.google.com/docs/crashlytics/get-started-new-sdk.

    Related Issues

    • Fixes #2038
    • Fixes #2379
    • Fixes #1411
    • Fixes #1153
    • Fixes #2361

    Checklist

    Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

    • [x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
    • [x] If the pull request affects only one plugin, the PR title starts with the name of the plugin in brackets (e.g. [cloud_firestore])
    • [x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
    • [x] All existing and new tests are passing.
    • [x] I updated/added relevant documentation (doc comments with ///).
    • [x] The analyzer (flutter analyze) does not report any problems on my PR.
    • [x] I read and followed the Flutter Style Guide.
    • [x] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
    • [x] I updated CHANGELOG.md to add a description of the change.
    • [x] I signed the CLA.
    • [x] I am willing to follow-up on review comments in a timely manner.

    Breaking Change

    Does your PR require plugin users to manually update their apps to accommodate your change?

    • [x] Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
    • [ ] No, this is not a breaking change.
    cla: yes 
    opened by axel-op 68
  • 🐛 [firebase_crashlytics] Failed to retrieve settings from https://firebase-settings.crashlytics.com

    🐛 [firebase_crashlytics] Failed to retrieve settings from https://firebase-settings.crashlytics.com

    Bug report

    I added firebase_crashlytics to a new flutter app and ran it. In logs, it simply logs this error and my crashes are not reported to firebase console:

    E/FirebaseCrashlytics(23176): Failed to retrieve settings from https://firebase-settings.crashlytics.com/spi/v2/platforms/android/gmp/1:639321596024:android:2e8626b6d04d73c1aecd8d/settings
    

    I hit this URL manually and it returns a 403 error. Not sure if it is expected or not.

    Steps to reproduce

    Steps to reproduce the behavior:

    1. Create a new flutter app.
    2. Create a new firebase app.
    3. Add firebase_crashlytics plugin to flutter.
    4. Configure the android build.gradle files.
    5. Run the app.

    Expected behavior

    The crashes should be logged in firebase upon next launch of app.


    Additional context

    I followed the tutorial here to add crashlytics: https://firebase.flutter.dev/docs/overview/


    Flutter doctor

    Click To Expand
    [✓] Flutter (Channel stable, 1.20.4, on Mac OS X 10.15.7 19H2, locale en-GB)
     
    [✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    [✓] Xcode - develop for iOS and macOS (Xcode 12.0.1)
    [✓] Android Studio (version 4.0)
    [✓] VS Code (version 1.49.2)
    [✓] Connected device (1 available)
    
    • No issues found!
    

    Flutter dependencies

    Click To Expand
    Dart SDK 2.9.2
    Flutter SDK 1.20.4
    rideTracker 1.0.0+1
    
    dependencies:
    - cupertino_icons 0.1.3
    - device_info 0.4.2+8 [flutter device_info_platform_interface]
    - firebase_core 0.5.0 [firebase_core_platform_interface flutter quiver meta firebase_core_web]
    - firebase_crashlytics 0.2.0 [flutter stack_trace firebase_core firebase_core_platform_interface firebase_crashlytics_platform_interface]
    - flutter 0.0.0 [characters collection meta typed_data vector_math sky_engine]
    - flutter_localizations 0.0.0 [flutter intl characters collection meta path typed_data vector_math]
    - provider 4.3.2+2 [flutter nested collection]
    - sailor 0.7.1 [flutter]
    
    dev dependencies:
    - flutter_launcher_icons 0.8.0 [image args yaml]
    - flutter_native_splash 0.1.9 [yaml image color]
    
    transitive dependencies:
    - archive 2.0.13 [crypto args path]
    - args 1.6.0
    - characters 1.0.0
    - charcode 1.1.3
    - collection 1.14.13
    - color 2.1.1
    - convert 2.1.1 [charcode typed_data]
    - crypto 2.1.5 [collection convert typed_data]
    - device_info_platform_interface 1.0.1 [flutter meta plugin_platform_interface]
    - firebase 7.3.0 [http http_parser js]
    - firebase_core_platform_interface 2.0.0 [flutter meta plugin_platform_interface quiver]
    - firebase_core_web 0.2.0 [firebase firebase_core_platform_interface flutter flutter_web_plugins meta js]
    - firebase_crashlytics_platform_interface 1.0.0 [flutter meta collection firebase_core plugin_platform_interface]
    - flutter_web_plugins 0.0.0 [flutter characters collection meta typed_data vector_math]
    - http 0.12.2 [http_parser path pedantic]
    - http_parser 3.1.4 [charcode collection source_span string_scanner typed_data]
    - image 2.1.18 [archive xml meta]
    - intl 0.16.1 [path]
    - js 0.6.2
    - matcher 0.12.8 [stack_trace]
    - meta 1.1.8
    - nested 0.0.4 [flutter]
    - path 1.7.0
    - pedantic 1.9.0
    - petitparser 3.0.4 [meta]
    - plugin_platform_interface 1.0.2 [meta]
    - quiver 2.1.3 [matcher meta]
    - sky_engine 0.0.99
    - source_span 1.7.0 [charcode collection meta path term_glyph]
    - stack_trace 1.9.5 [path]
    - string_scanner 1.0.5 [charcode meta source_span]
    - term_glyph 1.1.0
    - typed_data 1.2.0 [collection]
    - vector_math 2.0.8
    - xml 4.5.1 [collection convert meta petitparser]
    - yaml 2.2.1 [charcode collection string_scanner source_span]
    

    type: bug impact: critical impact: crowd plugin: crashlytics 
    opened by sulaysumaria 68
  • can not write to cloud database

    can not write to cloud database

    I can not update a default data for new user after registration. data only update after I sign out.

    opened by paddiss 0
  • 🐛 [N/A] Unclear exception message when GCP Project ACLs do not permit access

    🐛 [N/A] Unclear exception message when GCP Project ACLs do not permit access

    Bug report

    Describe the bug GCP Project ACLs are not tied directly to the Firebase project, and a desync between the two can create a situation where Firebase calls fail for no apparent reason, and with no clear exception message.

    Steps to reproduce

    Steps to reproduce the behavior:

    1. Complete Firebase SDK setup
    2. Set up a set of credentials in GCP
    3. Restrict GCP credentials to limited set of APIs
    4. Restrict GCP credentials to a single platform (iOS or Android, should not matter)
    5. DO NOT specify a package signature, or specify an incorrect one
    6. See error or incorrect behavior

    Expected behavior

    I expect the exception thrown by the Firebase SDK to shed light on the nature of the error, or at least not misdirect me.

    Sample project

    N/A


    Additional context

    Continuation of #6993.

    Although it's the Firebase SDK throwing the error, it's not actually the Firebase SDK that's at fault, nor is it Firebase itself. The problem originates in GCP, which has a separate ACL for the Firebase APIs, including Firebase Remote Config API (though I suspect the Installations API might also play a part, or any of the other Firebase APIs), and because the new package signature was not added in the GCP Credentials ACL, my requests were discarded with an error. This error was, however, not surfaced to me at any point.

    So the problem in the referenced issue was not with Firebase itself, but how this particular scenario is communicated to the developer. Because there's a package signature filter both on the Firebase Console (which I remembered to update) and on the GCP Console (which I didn't), this looks more like a UX/architecture issue - which makes it all the thornier and harder to resolve.
    My humble recommendation, without being aware of the internals, would be to present the developer with a more specific error message that indicates why the request failed. I realize there is a difficulty in differentiating a request that fails due to the Firebase ACL from one that fails due to GCP's ACL, but I believe it would be important to distinguish between the two.


    Flutter doctor

    Run flutter doctor and paste the output below:

    Click To Expand
    $ flutter doctor
    Doctor summary (to see all details, run flutter doctor -v):
    [√] Flutter (Channel stable, 2.5.3, on Microsoft Windows [Version 10.0.22000.348], locale hu-HU)
    [√] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    [√] Chrome - develop for the web
    [√] Android Studio (version 2020.3)
    [√] IntelliJ IDEA Community Edition (version 2021.2)
    [√] VS Code (version 1.62.3)
    [√] Connected device (3 available)
    
    • No issues found!
    

    Flutter dependencies

    Run flutter pub deps -- --style=compact and paste the output below:

    Click To Expand
    firebase_core: 1.10.0
    firebase_crashlytics: 2.3.0
    firebase_analytics: 8.3.4
    firebase_auth: 3.2.0
    firebase_remote_config: 0.11.0+2
    firebase_storage: 10.1.0
    
    

    type: bug Needs Attention 
    opened by zmeggyesi 0
  • 🐛 [firebase auth] Cannot connect to emulator with hostname specified on iOS or Android

    🐛 [firebase auth] Cannot connect to emulator with hostname specified on iOS or Android

    Bug report

    Describe the bug I have started the emulator locally using the following configuration

    {
      "emulators": {
        "firestore": {
          "port": 8088,
          "host": "0.0.0.0"
        },
        "auth": {
          "port": "8082",
          "host": "0.0.0.0"
        },
        "ui": {
          "enabled": true
        }
      }
    }
    

    And when I setup the firebase authentication instance I use following code

    fireAuth.useAuthEmulator("siia.local.int", int.parse(8082));
    

    where siia.local.int resolves to the ip on my local machine in the private IP space. This host is also used to connect to the firestore emulator.

    The app can connect without issues to the firestore emulator but fails to connect to the firestore auth emulator

    [firebase_auth/network-request-failed] Network error (such as timeout, interrupted connection or unreachable host) has occurred.
    

    Interestingly, on Android I get the following message

    [firebase_auth/unknown] com.google.firebase.FirebaseException: An internal error has occurred. [ Cleartext HTTP traffic to siia.local.int not permitted ]
    

    However, when I instead use 127.0.0.1 for the iOS simulator it works.

    Steps to reproduce

    As per above

    Expected behavior

    Connection to firebase auth emulator should work

    Flutter doctor

    Click To Expand
    Doctor summary (to see all details, run flutter doctor -v):
    [✓] Flutter (Channel stable, 2.5.3, on macOS 11.6 20G165 darwin-x64, locale en-AU)
    [✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0-rc1)
    [✓] Xcode - develop for iOS and macOS
    [✓] Chrome - develop for the web
    [✓] Android Studio (version 2020.3)
    [✓] IntelliJ IDEA Community Edition (version 2020.3.2)
    [✓] VS Code (version 1.58.2)
    [✓] Connected device (3 available)
    
    • No issues found!
    

    Flutter dependencies

    Click To Expand
      cloud_firestore: ^3.1.0
      firebase_core: ^1.10.0
      firebase_auth: ^3.2.0
    

    type: bug Needs Attention 
    opened by muzzah 1
  • chore(auth): update auth example pubspec.yaml to match Dynamic Link rework paths

    chore(auth): update auth example pubspec.yaml to match Dynamic Link rework paths

    Description

    Do not merge until the Dynamic Links plugin rework has been merged: https://github.com/FirebaseExtended/flutterfire/pull/7263

    Related Issues

    Checklist

    Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

    • [ ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
    • [ ] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
    • [ ] All existing and new tests are passing.
    • [ ] I updated/added relevant documentation (doc comments with ///).
    • [ ] The analyzer (melos run analyze) does not report any problems on my PR.
    • [ ] I read and followed the Flutter Style Guide.
    • [ ] I signed the CLA.
    • [ ] I am willing to follow-up on review comments in a timely manner.

    Breaking Change

    Does your PR require plugin users to manually update their apps to accommodate your change?

    • [ ] Yes, this is a breaking change.
    • [x] No, this is not a breaking change.
    cla: yes blocked: do-not-merge 
    opened by russellwheatley 0
  • [📚] Flutter Web with Firebase Emulator

    [📚] Flutter Web with Firebase Emulator

    Hello!

    There is very little/no documentation for how to do this on the internet. The problem here is that the firebase firebase.initializeApp(firebaseConfig); is called in the index.html. How do we wish to direct to the emulator? Presumably in the index.html as well? Can we conditionally redirect? Looking for some thoughts on the appropriate approach here. Thank you!

    type: documentation good first issue 
    opened by kornha 1
  • feat(firebase_app_check): app-check updates

    feat(firebase_app_check): app-check updates

    App Check updates

    • Support multi-app

    • getToken

    • setTokenAutoRefeshEnabled

    • tokenChanges (stream)

    • [x] Dart

    • [x] Android

    • [ ] iOS

    • [ ] Tests

    cla: yes 
    opened by Ehesp 0
  • 🐛 [firebase_performance] Fatal Exception: NSInvalidArgumentException Object for handle already exists: %d

    🐛 [firebase_performance] Fatal Exception: NSInvalidArgumentException Object for handle already exists: %d

    Bug report

    Describe the bug App crashes from time to time when I'm using the plugin in the background, in my case I'm using it in background_locator and when it starts recording newHttpMetric it crashes. After app relaunch, it works okay.

    Report from firebase

    Fatal Exception: NSInvalidArgumentException
    0  CoreFoundation                 0x9904c __exceptionPreprocess
    1  libobjc.A.dylib                0x15f54 objc_exception_throw
    2  Runner                         0x4e2498 +[FLTFirebasePerformancePlugin removeMethodHandler:] + 55 (FLTFirebasePerformancePlugin.m:55)
    3  Runner                         0x4e1e4c -[FLTFirebasePerformance newHttpMetric:result:] + 67 (FLTFirebasePerformance.m:67)
    4  Runner                         0x4e198c -[FLTFirebasePerformance handleMethodCall:result:] + 34 (FLTFirebasePerformance.m:34)
    5  Runner                         0x4e2360 -[FLTFirebasePerformancePlugin handleMethodCall:result:] + 38 (FLTFirebasePerformancePlugin.m:38)
    6  Flutter                        0x4ecdc0 (Missing)
    7  Flutter                        0x3ff34 (Missing)
    8  Flutter                        0x348db4 (Missing)
    9  Flutter                        0x2ee068 (Missing)
    10 Flutter                        0x2f1098 (Missing)
    11 CoreFoundation                 0xae268 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
    12 CoreFoundation                 0x32c40 __CFRunLoopDoTimer
    13 CoreFoundation                 0x2d43c __CFRunLoopDoTimers
    14 CoreFoundation                 0xbc58 __CFRunLoopRun
    15 CoreFoundation                 0x1f3b8 CFRunLoopRunSpecific
    16 GraphicsServices               0x138c GSEventRunModal
    17 UIKitCore                      0x5196a8 -[UIApplication _run]
    18 UIKitCore                      0x2987f4 UIApplicationMain
    19 Runner                         0x6ad4 main + 16 (AppDelegate.swift:16)
    20 ???                            0x1017eda24 (Missing)
    

    Steps to reproduce

    Steps to reproduce the behavior:

    1. Collect metrics in the background
    2. See error or incorrect behavior

    Expected behavior

    The app works as usual

    Sample project

    Click To Expand
    /// Copied from https://pub.dev/packages/dio_firebase_performance
    /// Reason: Because originally interceptors awaits metrics.start or
    /// metrics.stop, it cause a case where ios app will be awaiting for unknown
    /// amount of time making app seems that it stuck or having trouble connection
    /// to backend or internet.
    /// Original docs:
    /// [Dio] client interceptor that hooks into request/response process
    /// and calls Firebase Metric API in between. The request key is calculated
    /// based upon [extra] field hash code which appears to be the same across
    /// [onRequest], [onResponse] and [onError] calls.
    ///
    /// Additionally there is no good API of obtaining content length from
    /// interceptor API so we're "approximating" the byte length based on headers &
    /// request data.
    /// If you're not fine with this, you can provide your own implementation in the
    /// constructor
    /// This interceptor might be counting parsing time into elapsed API call
    /// duration. I am not fully aware of [Dio] internal architecture.
    class DioFirebasePerformanceInterceptor extends Interceptor {
      DioFirebasePerformanceInterceptor({
        this.requestContentLengthMethod = _defaultRequestContentLength,
        this.responseContentLengthMethod = _defaultResponseContentLength,
      });
    
      /// key: requestKey hash code, value: ongoing metric
      final _map = <int, HttpMetric>{};
      final RequestContentLengthMethod requestContentLengthMethod;
      final ResponseContentLengthMethod responseContentLengthMethod;
    
      @override
      void onRequest(
        RequestOptions options,
        RequestInterceptorHandler handler,
      ) {
        try {
          final requestKey = options.extra.hashCode;
          final metric = FirebasePerformance.instance.newHttpMetric(
            options.uri.normalized(),
            options.method.asHttpMethod(),
          )
            ..start()
            ..requestPayloadSize = requestContentLengthMethod(options) ?? 0;
          _map[requestKey] = metric;
        } catch (_) {}
        return super.onRequest(
          options,
          handler,
        );
      }
    
      @override
      void onResponse(
        Response response,
        ResponseInterceptorHandler handler,
      ) {
        try {
          final requestKey = response.requestOptions.extra.hashCode;
          _map.remove(requestKey)
            ..setResponse(
              response,
              responseContentLengthMethod,
            )
            ..stop();
        } catch (_) {}
        return super.onResponse(
          response,
          handler,
        );
      }
    
      @override
      void onError(
        DioError err,
        ErrorInterceptorHandler handler,
      ) {
        try {
          final requestKey = err.requestOptions.extra.hashCode;
          _map.remove(requestKey)
            ..setResponse(
              err.response,
              responseContentLengthMethod,
            )
            ..stop();
        } catch (_) {}
        return super.onError(
          err,
          handler,
        );
      }
    }
    
    typedef RequestContentLengthMethod = int Function(RequestOptions options);
    int _defaultRequestContentLength(
      RequestOptions options,
    ) {
      try {
        if (options.data is String || options.data is Map) {
          return options.headers.toString().length +
              (options.data?.toString()?.length ?? 0);
        }
      } catch (_) {
        return null;
      }
      return null;
    }
    
    typedef ResponseContentLengthMethod = int Function(Response options);
    int _defaultResponseContentLength(
      Response response,
    ) {
      if (response.data is String) {
        return (response?.headers?.toString()?.length ?? 0) + response.data.length;
      } else {
        return null;
      }
    }
    
    extension _ResponseHttpMetric on HttpMetric {
      void setResponse(
        Response value,
        ResponseContentLengthMethod responseContentLengthMethod,
      ) {
        if (value == null) {
          return;
        }
        responsePayloadSize = responseContentLengthMethod(value) ?? 0;
        responseContentType = value?.headers?.value?.call(
          Headers.contentTypeHeader,
        );
        httpResponseCode = value.statusCode;
      }
    }
    
    extension _UriHttpMethod on Uri {
      String normalized() {
        return '$scheme://$host$path';
      }
    }
    
    extension _StringHttpMethod on String {
      HttpMethod asHttpMethod() {
        if (this == null) {
          return null;
        }
    
        switch (toUpperCase()) {
          case 'POST':
            return HttpMethod.Post;
          case 'GET':
            return HttpMethod.Get;
          case 'DELETE':
            return HttpMethod.Delete;
          case 'PUT':
            return HttpMethod.Put;
          case 'PATCH':
            return HttpMethod.Patch;
          case 'OPTIONS':
            return HttpMethod.Options;
          default:
            return null;
        }
      }
    }
    

    Flutter doctor

    Run flutter doctor and paste the output below:

    Click To Expand
    Doctor summary (to see all details, run flutter doctor -v):
    [✓] Flutter (Channel stable, 2.5.3, on Manjaro Linux 5.10.79-1-MANJARO, locale en_US.UTF-8)
    [✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    [✓] Chrome - develop for the web
    [✓] Android Studio (version 2020.3)
    [✓] Connected device (2 available)
    
    • No issues found!
    
    

    Flutter dependencies

    Run flutter pub deps -- --style=compact and paste the output below:

    Click To Expand
    Dart SDK 2.14.4
    Flutter SDK 2.5.3
    work_project 1.0.0
    
    dependencies:
    - adaptive_dialog 1.2.0 [animations collection flutter meta]
    - alice 0.2.4 [flutter http dio flutter_local_notifications rxdart path_provider permission_handler package_info_plus open_file sensors share chopper better_player collection]
    - back_button_interceptor 5.0.2 [collection flutter]
    - background_locator 1.6.6 [flutter]
    - basic_utils 3.9.0 [http logging json_annotation pointycastle]
    - better_player 0.0.77 [flutter cupertino_icons wakelock pedantic meta flutter_widget_from_html_core visibility_detector path_provider collection xml]
    - cupertino_icons 1.0.4
    - custom_pop_up_menu 1.2.2 [flutter]
    - device_info_plus 3.1.1 [flutter device_info_plus_platform_interface device_info_plus_linux device_info_plus_macos device_info_plus_web device_info_plus_windows]
    - dio 4.0.3 [http_parser path]
    - dotted_border 2.0.0+1 [flutter path_drawing]
    - duration 3.0.8
    - easy_mask 2.0.1 [flutter]
    - edge_detection 1.0.7 [flutter]
    - email_validator 2.0.1
    - ext_storage 1.0.3 [flutter]
    - file_picker 4.2.4 [flutter flutter_web_plugins flutter_plugin_android_lifecycle plugin_platform_interface ffi path]
    - firebase_analytics 8.3.4 [firebase_analytics_platform_interface firebase_analytics_web firebase_core flutter meta]
    - firebase_core 1.10.0 [firebase_core_platform_interface firebase_core_web flutter meta]
    - firebase_crashlytics 2.3.0 [firebase_core firebase_core_platform_interface firebase_crashlytics_platform_interface flutter stack_trace]
    - firebase_messaging 11.1.0 [firebase_core firebase_core_platform_interface firebase_messaging_platform_interface firebase_messaging_web flutter meta]
    - firebase_performance 0.7.1+4 [firebase_core firebase_core_platform_interface firebase_performance_platform_interface firebase_performance_web flutter]
    - firebase_remote_config 0.11.0+2 [firebase_core firebase_core_platform_interface firebase_remote_config_platform_interface flutter]
    - flutter 0.0.0 [characters collection meta typed_data vector_math sky_engine]
    - flutter_downloader 1.7.0 [flutter]
    - flutter_flavor 3.0.3 [flutter xml yaml]
    - flutter_inappwebview 5.3.2 [flutter]
    - flutter_linkify 5.0.2 [flutter linkify]
    - flutter_local_notifications 8.2.0 [flutter flutter_local_notifications_platform_interface platform timezone]
    - flutter_localizations 0.0.0 [flutter intl characters clock collection meta path typed_data vector_math]
    - flutter_markdown 0.6.8 [flutter markdown meta path]
    - flutter_phone_direct_caller 2.1.0 [flutter]
    - flutter_rating_bar 4.0.0 [flutter]
    - flutter_secure_storage 5.0.2 [meta flutter flutter_secure_storage_linux flutter_secure_storage_macos flutter_secure_storage_platform_interface flutter_secure_storage_web flutter_secure_storage_windows]
    - flutter_svg 0.23.0+1 [flutter meta path_drawing vector_math xml]
    - flutter_typeahead 3.2.3 [flutter flutter_keyboard_visibility]
    - geolocator 7.6.2 [flutter geolocator_platform_interface geolocator_android geolocator_apple geolocator_web]
    - google_fonts 2.1.0 [flutter http path_provider crypto]
    - google_maps_flutter 2.1.1 [flutter flutter_plugin_android_lifecycle google_maps_flutter_platform_interface]
    - google_maps_webservice 0.0.20-nullsafety.5 [http meta json_annotation]
    - hand_signature 2.1.0+2 [flutter flutter_svg]
    - image_picker 0.8.4+4 [flutter flutter_plugin_android_lifecycle image_picker_for_web image_picker_platform_interface]
    - intl 0.17.0 [clock path]
    - jiffy 4.1.0 [intl]
    - jwt_decoder 2.0.1
    - keyboard_actions 3.4.4 [flutter]
    - logger 1.1.0
    - map_launcher 2.1.1 [flutter]
    - meta 1.7.0
    - open_file 3.2.1 [flutter ffi]
    - package_info_plus 1.3.0 [flutter package_info_plus_platform_interface package_info_plus_linux package_info_plus_macos package_info_plus_windows package_info_plus_web]
    - path 1.8.0
    - path_provider 2.0.7 [flutter path_provider_android path_provider_ios path_provider_linux path_provider_macos path_provider_platform_interface path_provider_windows]
    - pdf 3.6.3 [archive barcode crypto image meta path_parsing vector_math xml]
    - permission_handler 8.1.6 [flutter meta permission_handler_platform_interface]
    - pin_code_fields 7.3.0 [flutter]
    - pretty_dio_logger 1.2.0-beta-1 [dio]
    - rxdart 0.27.3
    - shared_preferences 2.0.9 [flutter meta shared_preferences_android shared_preferences_ios shared_preferences_linux shared_preferences_macos shared_preferences_platform_interface shared_preferences_web shared_preferences_windows]
    - sprintf 6.0.0
    - sqflite 2.0.0+4 [flutter sqflite_common path]
    - supercharged 2.1.1 [supercharged_dart flutter]
    - time 2.0.1
    - uuid 3.0.5 [crypto]
    - xml 5.3.1 [collection meta petitparser]
    
    dev dependencies:
    - flutter_launcher_icons 0.9.2 [args image path yaml]
    - flutter_lints 1.0.4 [lints]
    - flutter_native_splash 1.3.1 [args image meta path xml yaml universal_io]
    
    transitive dependencies:
    - animations 2.0.2 [flutter]
    - archive 3.1.6 [crypto path]
    - args 2.3.0
    - async 2.8.2 [collection meta]
    - barcode 2.1.0 [meta qr]
    - characters 1.1.0
    - charcode 1.3.1
    - chopper 4.0.3 [http meta logging]
    - clock 1.1.0
    - collection 1.15.0
    - convert 3.0.1 [typed_data]
    - cross_file 0.3.2 [flutter js meta]
    - crypto 3.0.1 [collection typed_data]
    - csslib 0.17.1 [source_span]
    - device_info_plus_linux 2.1.0 [device_info_plus_platform_interface file flutter meta]
    - device_info_plus_macos 2.2.0 [device_info_plus_platform_interface flutter]
    - device_info_plus_platform_interface 2.2.1 [flutter meta plugin_platform_interface]
    - device_info_plus_web 2.1.0 [device_info_plus_platform_interface flutter_web_plugins flutter]
    - device_info_plus_windows 2.1.0 [device_info_plus_platform_interface ffi flutter win32]
    - ffi 1.1.2
    - file 6.1.2 [meta path]
    - firebase 9.0.2 [http http_parser js]
    - firebase_analytics_platform_interface 2.0.1 [flutter meta]
    - firebase_analytics_web 0.3.0+1 [firebase firebase_analytics_platform_interface flutter flutter_web_plugins meta]
    - firebase_core_platform_interface 4.1.0 [collection flutter meta plugin_platform_interface]
    - firebase_core_web 1.2.0 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
    - firebase_crashlytics_platform_interface 3.1.6 [collection firebase_core flutter meta plugin_platform_interface]
    - firebase_messaging_platform_interface 3.0.9 [firebase_core flutter meta plugin_platform_interface]
    - firebase_messaging_web 2.1.0 [firebase_core firebase_core_web firebase_messaging_platform_interface flutter flutter_web_plugins js meta]
    - firebase_performance_platform_interface 0.0.1+7 [firebase_core flutter plugin_platform_interface]
    - firebase_performance_web 0.0.2 [firebase firebase_performance_platform_interface flutter flutter_web_plugins]
    - firebase_remote_config_platform_interface 0.3.0+7 [firebase_core flutter meta plugin_platform_interface]
    - flutter_keyboard_visibility 5.1.0 [meta flutter_keyboard_visibility_platform_interface flutter_keyboard_visibility_web flutter]
    - flutter_keyboard_visibility_platform_interface 2.0.0 [flutter meta plugin_platform_interface]
    - flutter_keyboard_visibility_web 2.0.0 [flutter_keyboard_visibility_platform_interface flutter_web_plugins flutter]
    - flutter_local_notifications_platform_interface 4.0.1 [flutter plugin_platform_interface]
    - flutter_plugin_android_lifecycle 2.0.4 [flutter]
    - flutter_secure_storage_linux 1.1.0 [flutter flutter_secure_storage_platform_interface]
    - flutter_secure_storage_macos 1.1.0 [flutter flutter_secure_storage_platform_interface]
    - flutter_secure_storage_platform_interface 1.0.0 [flutter plugin_platform_interface]
    - flutter_secure_storage_web 1.0.2 [flutter flutter_web_plugins flutter_secure_storage_platform_interface js]
    - flutter_secure_storage_windows 1.1.2 [flutter flutter_secure_storage_platform_interface]
    - flutter_web_plugins 0.0.0 [flutter js characters collection meta typed_data vector_math]
    - flutter_widget_from_html_core 0.7.0 [csslib flutter html]
    - geolocator_android 1.0.2 [flutter geolocator_platform_interface]
    - geolocator_apple 1.2.2 [flutter geolocator_platform_interface]
    - geolocator_platform_interface 2.3.6 [flutter plugin_platform_interface vector_math meta]
    - geolocator_web 2.0.6 [flutter flutter_web_plugins geolocator_platform_interface]
    - google_maps_flutter_platform_interface 2.1.3 [collection flutter meta plugin_platform_interface stream_transform]
    - html 0.15.0 [csslib source_span]
    - http 0.13.4 [async http_parser meta path]
    - http_parser 4.0.0 [charcode collection source_span string_scanner typed_data]
    - image 3.0.8 [archive meta xml]
    - image_picker_for_web 2.1.4 [flutter flutter_web_plugins image_picker_platform_interface meta]
    - image_picker_platform_interface 2.4.1 [flutter http meta plugin_platform_interface cross_file]
    - js 0.6.3
    - json_annotation 4.3.0 [meta]
    - linkify 4.1.0
    - lints 1.0.1
    - logging 1.0.2
    - markdown 4.0.1 [args charcode meta]
    - mime 1.0.1
    - package_info_plus_linux 1.0.3 [package_info_plus_platform_interface flutter path]
    - package_info_plus_macos 1.3.0 [flutter]
    - package_info_plus_platform_interface 1.0.2 [flutter meta plugin_platform_interface]
    - package_info_plus_web 1.0.4 [flutter flutter_web_plugins http meta package_info_plus_platform_interface]
    - package_info_plus_windows 1.0.4 [package_info_plus_platform_interface ffi flutter win32]
    - path_drawing 0.5.1+1 [vector_math meta path_parsing flutter]
    - path_parsing 0.2.1 [vector_math meta]
    - path_provider_android 2.0.8 [flutter path_provider_platform_interface]
    - path_provider_ios 2.0.7 [flutter path_provider_platform_interface]
    - path_provider_linux 2.1.2 [flutter path path_provider_platform_interface xdg_directories]
    - path_provider_macos 2.0.3 [flutter]
    - path_provider_platform_interface 2.0.1 [flutter meta platform plugin_platform_interface]
    - path_provider_windows 2.0.4 [ffi flutter meta path path_provider_platform_interface win32]
    - pedantic 1.11.1
    - permission_handler_platform_interface 3.7.0 [flutter meta plugin_platform_interface]
    - petitparser 4.4.0 [meta]
    - platform 3.0.2
    - plugin_platform_interface 2.0.2 [meta]
    - pointycastle 3.4.0 [collection convert js]
    - process 4.2.4 [file path platform]
    - qr 2.1.0 [meta]
    - sensors 2.0.3 [flutter]
    - share 2.0.4 [meta mime flutter]
    - shared_preferences_android 2.0.8 [flutter meta shared_preferences_platform_interface]
    - shared_preferences_ios 2.0.8 [flutter meta shared_preferences_platform_interface]
    - shared_preferences_linux 2.0.3 [file flutter meta path path_provider_linux shared_preferences_platform_interface]
    - shared_preferences_macos 2.0.2 [flutter shared_preferences_platform_interface]
    - shared_preferences_platform_interface 2.0.0 [flutter]
    - shared_preferences_web 2.0.2 [flutter flutter_web_plugins meta shared_preferences_platform_interface]
    - shared_preferences_windows 2.0.3 [file flutter meta path path_provider_platform_interface path_provider_windows shared_preferences_platform_interface]
    - sky_engine 0.0.99
    - source_span 1.8.1 [collection path term_glyph]
    - sqflite_common 2.0.1+1 [synchronized path meta]
    - stack_trace 1.10.0 [path]
    - stream_transform 2.0.0
    - string_scanner 1.1.0 [charcode source_span]
    - supercharged_dart 2.1.1
    - synchronized 3.0.0
    - term_glyph 1.2.0
    - timezone 0.8.0 [path]
    - typed_data 1.3.0 [collection]
    - universal_io 2.0.4 [collection crypto meta typed_data]
    - vector_math 2.1.0
    - visibility_detector 0.2.2 [flutter]
    - wakelock 0.5.6 [flutter meta wakelock_macos wakelock_platform_interface wakelock_web wakelock_windows]
    - wakelock_macos 0.4.0 [flutter flutter_web_plugins wakelock_platform_interface]
    - wakelock_platform_interface 0.3.0 [flutter meta]
    - wakelock_web 0.4.0 [flutter flutter_web_plugins js wakelock_platform_interface]
    - wakelock_windows 0.2.0 [flutter wakelock_platform_interface win32]
    - win32 2.3.0 [ffi]
    - xdg_directories 0.2.0 [meta path process]
    - yaml 3.1.0 [collection source_span string_scanner]
    

    type: bug Needs Attention 
    opened by TheSuperiorStanislav 0
  • build(deps): bump algoliasearch-helper from 3.4.4 to 3.6.2 in /website

    build(deps): bump algoliasearch-helper from 3.4.4 to 3.6.2 in /website

    Bumps algoliasearch-helper from 3.4.4 to 3.6.2.

    Changelog

    Sourced from algoliasearch-helper's changelog.

    3.6.2 - 2021-10-19

    3.6.1 - 2021-10-15

    3.6.0 - 2021-10-08

    3.5.5 - 2021-07-30

    3.5.4 - 2021-07-05

    3.5.3 - 2021-06-14

    3.5.2 - 2021-06-14

    3.5.1 - 2021-06-14

    3.5.0 - 2021-06-14

    3.4.5 - 2021-06-10

    Commits
    • 0da37cc 3.6.2 - 2021-10-19
    • 4ff542b fix(SearchParameters): ignore invalid parameters (#880)
    • dff9e32 3.6.1 - 2021-10-15
    • 990f8bc fix(facetOrdering): make sure ordered facets is a dense array (#879)
    • b5b3d72 3.6.0 - 2021-10-08
    • fc183ec feat(facets): when * is present, only send that parameter (#874)
    • 3648463 ci(circle): update node image (#875)
    • 2053c79 3.5.5 - 2021-07-30
    • cef547d feat(ts): allow showParentLevel in hierarchicalFacet
    • 3b4cdd9 3.5.4 - 2021-07-05
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    cla: yes dependencies 
    opened by dependabot[bot] 1
  • 🐛 [cloud_firestore] TransactionStreamHandler.java uses unchecked or unsafe operations

    🐛 [cloud_firestore] TransactionStreamHandler.java uses unchecked or unsafe operations

    Bug report

    To reproduce the problem you just have to install a clean version of android studio and flutter and add firebase_core and cloud_firestore and start the application.

    There is a similar error with #5914 but it is closed and there is no answer about why it happens or if we can let it pass.

    Running "flutter pub get" in admin...
    Launching lib/main.dart on Android SDK built for x86 in debug mode...
    Running Gradle task 'assembleDebug'...
    Note: /Users/andrefedev/Dev/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-3.1.0/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/TransactionStreamHandler.java uses unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    ✓  Built build/app/outputs/flutter-apk/app-debug.apk.
    Installing build/app/outputs/flutter-apk/app.apk...
    Debug service listening on ws://127.0.0.1:57530/kaT6EiPg6_Q=/ws
    Syncing files to device Android SDK built for x86...
    

    Flutter doctor

    ➜  ~ flutter doctor                       
    Doctor summary (to see all details, run flutter doctor -v):
    [✓] Flutter (Channel stable, 2.5.3, on macOS 11.6 20G165 darwin-x64, locale es-419)
    [✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    [✓] Xcode - develop for iOS and macOS
    [✓] Chrome - develop for the web
    [✓] Android Studio (version 2020.3)
    [✓] IntelliJ IDEA Ultimate Edition (version 2021.1.2)
    [✓] VS Code (version 1.62.3)
    [✓] Connected device (1 available)
    
    • No issues found!
    
    
    type: bug good first issue plugin: cloud_firestore platform: android 
    opened by andrefedev 7
  • feat: UI

    feat: UI

    Description

    ⚠️ WIP DON'T MERGE

    Checklist

    Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

    • [ ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
    • [ ] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
    • [ ] All existing and new tests are passing.
    • [ ] I updated/added relevant documentation (doc comments with ///).
    • [ ] The analyzer (melos run analyze) does not report any problems on my PR.
    • [ ] I read and followed the Flutter Style Guide.
    • [ ] I signed the CLA.
    • [ ] I am willing to follow-up on review comments in a timely manner.

    Breaking Change

    Does your PR require plugin users to manually update their apps to accommodate your change?

    • [ ] Yes, this is a breaking change.
    • [ ] No, this is not a breaking change.
    cla: yes blocked: do-not-merge 
    opened by lesnitsky 1
Releases(cloud_firestore-v0.14.0-dev.1)
Owner
Projects that are not officially staffed by Googlers but may be of use to Firebase developers. Volunteers are welcome to contribute and maintain.
null
Notes app using flutter, firebase and cloud firestore

notes A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this is

Sidheshwar S 7 Oct 9, 2021
Flutter Version Management: A simple CLI to manage Flutter SDK versions.

fvm Flutter Version Management: A simple cli to manage Flutter SDK versions. FVM helps with the need for a consistent app builds by allowing to refere

Leo Farias 2.2k Nov 26, 2021
A flutter utility to easily create flavors in your flutter application

Flutter Flavorizr A flutter utility to easily create flavors in your flutter application Getting Started Let's start by setting up our environment in

Angelo Cassano 155 Nov 21, 2021
Ecosistema de paquetes para Dart y Flutter desarrollados y mantenidos por la comunidad de Flutter Cuba relacionados con la tienda cubana de aplicaciones para dispositivos Android llamada Apklis.

Ecosistema de paquetes para Dart y Flutter desarrollados y mantenidos por la comunidad de Flutter Cuba relacionados con la tienda cubana de aplicacion

Flutter Cuba 10 Nov 2, 2021
UME is an in-app debug kits platform for Flutter. Produced by Flutter Infra team of ByteDance

flutter_ume English Flutter 应用内调试工具平台 当前版本内置 10 个插件, 开发者可以创建自己的插件,并集成进 UME 平台。 详见本文为 UME 开发插件部分。 flutter_ume 快速接入 特别说明 功能介绍 为 UME 开发插件 版本说明 兼容性 单测覆盖率

Bytedance Inc. 1.4k Dec 1, 2021
An android application built using Flutter that computes the Body Mass Index of person and suggestion to carry ,by taking Inputs (Weight, Height, and Age), Built using Flutter

BMI Calculator ?? Our Goal The objective of this tutorial is to look at how we can customise Flutter Widgets to achieve our own beautiful user interfa

dev_allauddin 7 Nov 21, 2021
Fluro is a Flutter routing library that adds flexible routing options like wildcards, named parameters and clear route definitions.

Fluro is a Flutter routing library that adds flexible routing options like wildcards, named parameters and clear route definitions.

Luke Pighetti 3.4k Nov 28, 2021
AOP for Flutter(Dart)

AspectD Salute to AspectJ. AspectD is an AOP(aspect oriented programming) framework for dart. Like other traditional aop framework, AspectD provides c

null 914 Nov 18, 2021
Starter project and code generator for Flutter/Redux

Flutter Redux Starter/Code Generator Videos Short video ~ 1 minute Long video ~ 10 minutes We're using this approach to develop the Flutter app for In

Hillel Coren 272 Sep 30, 2021
Environment specific config generator for Dart and Flutter applications during CI/CD builds

Environment Config Generator Environment specific config generator. Allows to specify env configuration during CI/CD build. Primarily created to simpl

Denis Beketsky 86 Nov 12, 2021
Converts SVG icons to OTF font and generates Flutter-compatible class. Provides an API and a CLI tool.

Fontify The Fontify package provides an easy way to convert SVG icons to OpenType font and generate Flutter-compatible class that contains identifiers

Igor Kharakhordin 75 Oct 20, 2021
The Flutter code generator for your assets, fonts, colors, … — Get rid of all String-based APIs.

The Flutter code generator for your assets, fonts, colors, … — Get rid of all String-based APIs. Inspired by SwiftGen. Motivation Using asset path str

FlutterGen 790 Nov 28, 2021
🚀The Flutter dart code generator from zeplin. ex) Container, Text, Color, TextStyle, ... - Save your time.

Flutter Gen Zeplin Extension ?? The Flutter dart code generator from zeplin. ex) Container, Text, Color, TextStyle, ... - Save your time. ⬇ 1.1k Getti

NAVER 39 Oct 20, 2021
Okan YILDIRIM 34 Nov 19, 2021
Xamarin.Essentials VersionTracking for Flutter

Local version and build tracker plugin. Provides the ability to keep track of previous installations and easily migrate data between upgrades.

Kevin Morelli 9 Jul 4, 2021
Auto is a Flutter automated testing framework developed for testers.

Auto Auto-A simpler Flutter UI automation test solution. No need to write any code Recording test scripts is very simple Mult

null 13 Nov 27, 2021
Flutter Türkiye projelerinde kullandığımız özel lint paketi.

Flutter Turkey Lint (flutrlint) Language: English | Türkçe The special lint package that we used on Flutter Turkey projects. You can use this package

Flutter Turkey 12 Jul 2, 2021
Flutter Learn Series zero to end

flutter_learn A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if

Veli Bacik 20 Nov 15, 2021