使用颤振(Windows)应用程序进行firebase匿名登录时出现MissingPluginException异常
Posted
技术标签:
【中文标题】使用颤振(Windows)应用程序进行firebase匿名登录时出现MissingPluginException异常【英文标题】:MissingPluginException exception when a firebase anonymous sign-in with flutter (windows) app 【发布时间】:2021-01-26 20:12:46 【问题描述】:我最近开始使用 Flutter for windows。我正在关注this firebase 和颤振教程。在第 4 讲中,我遇到了 Firebase Auth 错误:
flutter:MissingPluginException(在通道 plugins.flutter.io/firebase_auth 上找不到方法 signInAnonymously 的实现)
我认为问题在于我正在为 Windows 构建。我不知道如何将 firebase 添加到 windows 应用程序。任何帮助表示赞赏
这是完整的日志:
Launching lib\main.dart on Windows in debug mode...
Building Windows application...
Waiting for Windows to report its views...
Debug service listening on ws://127.0.0.1:60688/97Ok8iT1Hjo=/ws
Syncing files to device Windows...
flutter: MissingPluginException(No implementation found for method signInAnonymously on channel plugins.flutter.io/firebase_auth)
flutter: error signing in
编辑 1
pubspec.yaml 文件(依赖部分)
dependencies:
flutter:
sdk: flutter
firebase_auth: ^0.14.0+5
cloud_firestore: ^0.12.9+4
编辑 2
我更新了依赖项以使用以下版本:
firebase_auth: ^0.18.1+2
cloud_firestore: ^0.14.1+3
firebase_core: ^0.5.0+1
但现在我收到以下错误:
[ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: MissingPluginException(No implementation found for method Firebase#initializeCore on channel plugins.flutter.io/firebase_core)
这是我的主要功能的样子:
void main() async
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
【问题讨论】:
在flutter clean
之后尝试构建
你是否在 yaml 文件中添加了所需的依赖项?如果有,您是否运行了命令 flutter pub get
来下载更新的依赖项?
@BugsHappen 是的,我做到了
你能在这里分享你的 pubspec.yaml 文件吗,只有依赖部分?
@HardikSachan 请添加 firebase_core: ^0.5.0+1 并重试
【参考方案1】:
但现在我收到以下错误:
[ERROR:flutter/lib/ui/ui_dart_state.cc(177)] 未处理的异常:MissingPluginException(在通道 plugins.flutter.io/firebase_core 上找不到方法 Firebase#initializeCore 的实现)
如here 中所述,您需要在android/build.gradle
的依赖项中设置com.android.tools.build:gradle:3.5.0
。
dependencies
classpath 'com.android.tools.build:gradle:3.5.0'
// ...
【讨论】:
但我正在尝试在 Windows 构建中使用它。如何为 windows 构建初始化 firebase? 有一个包 fb_auth。你可以检查一下。 pub.dev/packages/fb_auth。正如他们在包信息中注意到的那样,它也适用于 Windows。 firestore 也有类似的包吗?【参考方案2】:如果您在 android 上运行应用程序并且您的 MainActivity
具有此导入语句:
import io.flutter.app.FlutterActivity
您可能不得不将其更改为:
import io.flutter.embedding.android.FlutterActivity
【讨论】:
【参考方案3】:在 void main() 函数中添加 await Firebase.initializeApp();
后,您只是在热重新加载或热重启您的颤振。
只需停止您的 main.dart 进程并从头开始再次运行它 - 就是这样,现在您的应用已与 firebase 集成!
注意:在运行过程中可能会遇到 Multidex 错误的问题,请参考链接:D8: Cannot fit requested classes in a single dex file (# methods: 71610 > 65536) 以解决错误或只需添加:
在你的项目级别 >> android >> app >> build.gradle :
defaultConfig
...
multiDexEnabled true
【讨论】:
【参考方案4】:迟到了,但实际问题是 flutter_core
实际上并不支持 Windows。
它仅支持 Android、ios、MacOS 和 Web(请参阅 pub.dev 上的 firebase_core 包)。
【讨论】:
以上是关于使用颤振(Windows)应用程序进行firebase匿名登录时出现MissingPluginException异常的主要内容,如果未能解决你的问题,请参考以下文章
如何在后台监听firebase实时数据库更新事件并使用颤振自动启动应用程序(如Messenger中的调用功能)?
我想用我的 android 手机作为模拟器在 windows 7 上运行颤振。在我的调试模式下进行了调整。如何解决颤振医生命令的问题
在 Windows 10 上使用 VS Code 在 iphone 上调试颤振