使用颤振(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异常的主要内容,如果未能解决你的问题,请参考以下文章

如何更改桌面 Windows 应用程序图标以进行颤振?

如何在后台监听firebase实时数据库更新事件并使用颤振自动启动应用程序(如Messenger中的调用功能)?

我想用我的 android 手机作为模拟器在 windows 7 上运行颤振。在我的调试模式下进行了调整。如何解决颤振医生命令的问题

在 Windows 10 上使用 VS Code 在 iphone 上调试颤振

我们可以使用颤振,也用于黑莓操作系统和 Windows 操作系统移动应用程序的创建

任何人都可以帮助我宽度颤振吗?