Skip to content

[Messaging] flutter_driver and firebase_messaging are incompatible #3312

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
deimantasa opened this issue Aug 24, 2020 · 15 comments
Closed

[Messaging] flutter_driver and firebase_messaging are incompatible #3312

deimantasa opened this issue Aug 24, 2020 · 15 comments

Comments

@deimantasa
Copy link

Description
Firebase Messaging (7.0.0) and latest Flutter Master (1.22.0-2.0.pre.36) doesn't work.

Error

Because every version of flutter_driver from sdk depends on platform 3.0.0-nullsafety.1 and firebase_messaging 7.0.0 depends on platform ^2.0.0, flutter_driver from sdk is incompatible with firebase_messaging 7.0.0.
And because no versions of firebase_messaging match >7.0.0 <8.0.0, flutter_driver from sdk is incompatible with firebase_messaging ^7.0.0.
So, because fluid depends on both firebase_messaging ^7.0.0 and flutter_driver any from sdk, version solving failed.

pubspec.yaml

name: firebase_messaging_test_driver
description: A new Flutter application.

# The following line prevents the package from being accidentally published to
# pub.dev using `pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev

# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.0+1

environment:
  sdk: ">=2.7.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.3
  firebase_messaging: ^7.0.0

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_driver:
    sdk: flutter
# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec

# The following section is specific to Flutter.
flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  # To add assets to your application, add an assets section, like this:
  # assets:
  #   - images/a_dot_burr.jpeg
  #   - images/a_dot_ham.jpeg

  # An image asset can refer to one or more resolution-specific "variants", see
  # https://flutter.dev/assets-and-images/#resolution-aware.

  # For details regarding adding assets from package dependencies, see
  # https://flutter.dev/assets-and-images/#from-packages

  # To add custom fonts to your application, add a fonts section here,
  # in this "flutter" section. Each entry in this list should have a
  # "family" key with the font family name, and a "fonts" key with a
  # list giving the asset and other descriptors for the font. For
  # example:
  # fonts:
  #   - family: Schyler
  #     fonts:
  #       - asset: fonts/Schyler-Regular.ttf
  #       - asset: fonts/Schyler-Italic.ttf
  #         style: italic
  #   - family: Trajan Pro
  #     fonts:
  #       - asset: fonts/TrajanPro.ttf
  #       - asset: fonts/TrajanPro_Bold.ttf
  #         weight: 700
  #
  # For details regarding fonts from package dependencies,
  # see https://flutter.dev/custom-fonts/#from-packages

To Reproduce

  1. Create new project;
  2. Copy-Paste to pubspec.yaml (only added flutter_driver and firebase_messaging)
  3. Write flutter pub get
  4. Error will appear.

Expected behavior
Libs should be retrieved without an error.

Additional context
Works fine in Flutter 1.21.0-10.0.pre.139,.
Original Topic flutter/flutter#64312

Flutter doctor

[✓] Flutter (Channel master, 1.22.0-2.0.pre.36, on macOS 11.0 20A5354i, locale en-HK)
    • Flutter version 1.22.0-2.0.pre.36 at /Users/mac/FlutterProject/flutter
    • Framework revision d30e36ba8c (2 days ago), 2020-08-21 22:36:03 -0400
    • Engine revision d495da20d0
    • Dart version 2.10.0 (build 2.10.0-49.0.dev)

 
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/mac/Library/Android/sdk
    • Platform android-30, build-tools 28.0.3
    • ANDROID_SDK_ROOT = /Users/mac/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.0)
    • Xcode at /Users/mac/Downloads/Xcode-beta.app/Contents/Developer
    • Xcode 12.0, Build version 12A8179i
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 48.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.47.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.9.1

[✓] Connected device (3 available)
    • ONEPLUS A6000 (mobile) • 2b4e4866   • android-arm64  • Android 10 (API 29)
    • Web Server (web)       • web-server • web-javascript • Flutter Tools
    • Chrome (web)           • chrome     • web-javascript • Google Chrome 84.0.4147.135

• No issues found!

@darshankawar
Copy link

darshankawar commented Aug 24, 2020

Issue replicable on latest Master (1.22.0-2.0.pre.36). Doesn't occur on latest stable though (1.20.2)

Because every version of flutter_driver from sdk depends on platform 3.0.0-nullsafety.1 and firebase_messaging 7.0.0 depends on platform ^2.0.0, flutter_driver from sdk is incompatible with firebase_messaging 7.0.0.

And because no versions of firebase_messaging match >7.0.0 <8.0.0, flutter_driver from sdk is incompatible with firebase_messaging ^7.0.0.

So, because test_bug depends on both firebase_messaging ^7.0.0 and flutter_driver any from sdk, version solving failed.
pub get failed (1; So, because test_bug depends on both firebase_messaging ^7.0.0 and flutter_driver any from sdk, version solving failed.)

I also tried with other firebase plugins (eg: firebase_core, firebase_auth) which compiles properly along with flutter driver, but issue seems to be happening only with firebase_messaging.

The same setup works on previous master version (1.21.0-10.0.pre.139).

@Salakar
Copy link
Member

Salakar commented Aug 24, 2020

We should move e2e tests & driver dev dependency to the example app in messaging. No reason they need to stay as dev deps on the plugin itself - would someone be willing to send up a PR to do that?

@yvrez
Copy link

yvrez commented Aug 25, 2020

hello any update on this one ? i had to move to Beta Branch to make my project compile again with messaging 7.0.0. Thanks !

@preetjdp
Copy link

Hey @yvrez I've made the PR that fixes the issue, it is still to be reviewed (#3343)

In the meantime, you can just use the package directly

firebase_messaging:
    git:
      url: git://github.com/preetjdp/flutterfire.git
      ref: fix-3312
      path: packages/firebase_messaging

@yvrez
Copy link

yvrez commented Aug 25, 2020

thanks @preetjdp thanks i'm going to do that !

@shaynekellyii
Copy link

Any update on this? Flutter 1.22 was just pushed to the Flutter beta channel this morning.

@kauaicreative
Copy link

kauaicreative commented Sep 17, 2020

Hey @yvrez I've made the PR that fixes the issue, it is still to be reviewed (#3343)

In the meantime, you can just use the package directly

firebase_messaging:
    git:
      url: git://github.com/preetjdp/flutterfire.git
      ref: fix-3312
      path: packages/firebase_messaging

hmm, not working from here:

pub upgrade failed (server unavailable) -- attempting retry 6 in 32 seconds...
Package doesn't exist (the pubspec for firebase_messaging 7.0.1 from git has version 7.0.0).

@shaynekellyii
Copy link

@kauaicreative I would just fork flutterfire yourself for now and remove the platform dependency from the pubspec.yaml of firebase_messaging and import that in your project until it's done

@acoutts
Copy link

acoutts commented Sep 17, 2020

@Ehesp do you know if we'll have a quick fix for this on your new branch anytime soon?

@acoutts
Copy link

acoutts commented Sep 17, 2020

A quick fix that seems to satisfy the install command now:

dependency_overrides:
  # For firebase_messaging
  platform: 3.0.0-nullsafety.1

It's a tough time for a lot of packages right now because we're halfway between migrating everything for NNBD coming soon. It's gonna be a rocky migration for flutter devs.

@acoutts
Copy link

acoutts commented Sep 17, 2020

cc @Salakar in the current release of flutter, only the stable branch is able to use this package the moment.

@Ehesp
Copy link
Member

Ehesp commented Sep 18, 2020

Currently in the process of reworking messaging - have removed the platform dependency altogether. I'll get someone to look into sorting this in a patch.

@MrAlek
Copy link

MrAlek commented Oct 23, 2020

@Ehesp Any updates on this? :)

@dackers86
Copy link
Member

@MrAlek Messaging rework was announced yesterday https://twitter.com/mikediarmid/status/1319298281290203139. I believe this should solve this issue?

@MrAlek
Copy link

MrAlek commented Oct 23, 2020

@dackers86 Just saw this, thanks for the link!

Looks amazing, great work @Ehesp @Salakar & team 👏 Can't wait to try out!

@firebase firebase locked and limited conversation to collaborators Nov 23, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

10 participants