Flutter - 地理定位器和 firebase_auth 的依赖项不兼容

问题描述 投票:0回答:1

我正在尝试使用两个包:

我想在我的项目中使用提到的版本,但是我收到以下错误:

Resolving dependencies...
Because firebase_auth >=5.2.0 depends on firebase_auth_web ^5.12.6 which depends on web ^0.5.1, firebase_auth >=5.2.0 requires web ^0.5.1.
And because geolocator_web 4.1.1 depends on web ^1.0.0 and no versions of geolocator_web match >4.1.1 <5.0.0, firebase_auth >=5.2.0 is incompatible with geolocator_web ^4.1.1.
And because geolocator 13.0.1 depends on geolocator_web ^4.1.1 and no versions of geolocator match >13.0.1 <14.0.0, firebase_auth >=5.2.0 is incompatible with geolocator ^13.0.1.
So, because trawell_mobileapp depends on both geolocator ^13.0.1 and firebase_auth ^5.2.0, version solving failed.


You can try the following suggestion to make the pubspec resolve:
* Consider downgrading your constraint on firebase_auth: flutter pub add firebase_auth:^4.16.0

问题出在

web
包上,因为
firebase_auth
依赖于
web
在稍微贬值的版本 -
0.5.1
中,而
geolocator
在最新版本中使用 web -
1.0.0

事实上,降级 firebase_auth 的版本会有所帮助。但这仅仅是因为

firebase_auth:4.16.0
firebase_auth
的最后一个版本,不依赖于
web
包。 (依赖性是间接的 - 通过
firebase_auth_web
)。

B.T.W 为了解决这个谜题,我研究了 firebase_auth github 存储库上不同版本的依赖关系。

我的问题是:是否可以将两个软件包的最新版本用于仅移动应用程序?

flutter firebase dart dependencies geolocator
1个回答
0
投票

您可以使用这个:

dependencies:
  flutter:
    sdk: flutter
  geolocator: ^13.0.1
  firebase_auth: ^5.2.0

dependency_overrides:
  geolocator_web: 4.0.0

pubspec.yaml 文件中的 dependency_overrides 部分允许您手动覆盖 Dart 或 Flutter 项目的特定依赖项的版本限制。当您想要解决版本冲突或使用与默认引入的包不同的版本进行测试时,这非常有用。

© www.soinside.com 2019 - 2024. All rights reserved.