【问题标题】:Flutter 2.0 web version with firebase messaging is not working带有 Firebase 消息传递的 Flutter 2.0 网络版本无法正常工作
【发布时间】:2021-07-04 02:43:26
【问题描述】:

Flutter 应用程序专为移动设备和 Web 设计。我们正在使用 firebase_messaging 进行消息传递功能。早些时候它是工作魅力。最近我们将 Flutter SDK 升级到了 2.0 版本(Channel stable, 2.0.4)。

并且该应用程序的工作方式与移动版本中的早期一样。但是在网页版中执行时给了我下面提到的错误并且无法解决。

以下命令已尝试禁用空安全但没有用。

flutter run --no-sound-null-safety

错误日志:

Debug service listening on ws://127.0.0.1:53789/y22KqzTNKwU=/ws

Running with unsound null safety
For more information see https://dart.dev/null-safety/unsound-null-safety
Debug service listening on ws://127.0.0.1:53789/y22KqzTNKwU=/ws
TypeError: Cannot read property 'isSupported' of undefined
    at new firebase_messaging_web.FirebaseMessagingWeb.new (http://localhost:53495/packages/firebase_messaging_web/firebase_messaging_web.dart.lib.js:189:51)
    at Function.registerWith (http://localhost:53495/packages/firebase_messaging_web/firebase_messaging_web.dart.lib.js:56:73)
    at Object.registerPlugins (http://localhost:53495/packages/pca_app/generated_plugin_registrant.dart.lib.js:44:49)
    at main (http://localhost:53495/web_entrypoint.dart.lib.js:44:35)
    at main.next (<anonymous>)
    at runBody (http://localhost:53495/dart_sdk.js:39051:34)
    at Object._async [as async] (http://localhost:53495/dart_sdk.js:39082:7)
    at main$ (http://localhost:53495/web_entrypoint.dart.lib.js:43:18)
    at http://localhost:53495/main_module.bootstrap.js:19:10
    at Array.forEach (<anonymous>)
    at window.$dartRunMain (http://localhost:53495/main_module.bootstrap.js:18:32)
    at <anonymous>:1:8
    at Object.runMain (http://localhost:53495/dwds/src/injected/client.js:8656:21)
    at http://localhost:53495/dwds/src/injected/client.js:22068:19
    at _wrapJsFunctionForAsync_closure.$protected (http://localhost:53495/dwds/src/injected/client.js:3830:15)
    at _wrapJsFunctionForAsync_closure.call$2 (http://localhost:53495/dwds/src/injected/client.js:10905:12)
    at Object._asyncStartSync (http://localhost:53495/dwds/src/injected/client.js:3794:20)
    at main__closure1.$call$body$main__closure (http://localhost:53495/dwds/src/injected/client.js:22080:16)
    at main__closure1.call$1 (http://localhost:53495/dwds/src/injected/client.js:22007:19)
    at StaticClosure._rootRunUnary [as call$2$5] (http://localhost:53495/dwds/src/injected/client.js:4153:16)
    at _CustomZone.runUnary$2$2 (http://localhost:53495/dwds/src/injected/client.js:12136:39)
    at _CustomZone.runUnaryGuarded$1$2 (http://localhost:53495/dwds/src/injected/client.js:12068:14)
    at _ControllerSubscription._sendData$1 (http://localhost:53495/dwds/src/injected/client.js:11697:19)
    at _DelayedData.perform$1 (http://localhost:53495/dwds/src/injected/client.js:11849:59)
    at _PendingEvents_schedule_closure.call$0 (http://localhost:53495/dwds/src/injected/client.js:11898:14)
    at Object._microtaskLoop (http://localhost:53495/dwds/src/injected/client.js:3990:24)
    at StaticClosure._startMicrotaskLoop (http://localhost:53495/dwds/src/injected/client.js:3996:11)
    at _AsyncRun__initializeScheduleImmediate_internalCallback.call$1 (http://localhost:53495/dwds/src/injected/client.js:10774:9)
    at invokeClosure (http://localhost:53495/dwds/src/injected/client.js:1250:26)
    at MutationObserver.<anonymous> (http://localhost:53495/dwds/src/injected/client.js:1269:18)

Flutter 医生报告:

> Doctor summary (to see all details, run flutter doctor -v): [√]
> Flutter (Channel stable, 2.0.4, on Microsoft Windows [Version
> 10.0.18363.1441], locale en-GB) [√] Android toolchain - develop for Android devices (Android SDK version 30.0.2) [√] Chrome - develop for
> the web [√] Android Studio (version 4.0) [√] VS Code (version 1.41.1)
> [√] Connected device (2 available)
> 
> • No issues found!

【问题讨论】:

  • 这似乎是与 Github 上的 Flutter 或 Firebase 团队讨论的问题。
  • 你也可以分享你的index.html吗?
  • 感谢您的回复。应用您的帮助响应。 @Huthaifa Muayyad 给出的答案对我有用:)

标签: flutter flutter-dependencies flutter-web flutter2.0


【解决方案1】:

2021 年 9 月更新:


将此8.6.1 SDK 添加到您的index.html,它应该看起来像这样的布局。

<script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-messaging.js"></script>

到目前为止,这是推荐的。在Stable channel 2.5.0

上运行它而不会出错
  firebase_messaging: ^10.0.3
  firebase_messaging_web: ^2.0.2
  firebase_core: ^1.6.0
  firebase_core_web: ^1.1.0

【讨论】:

  • 非常感谢您的准确回答。我为 pubspec.yaml 提到的 index.html 和 firebase 依赖项中的前 2 个脚本行起到了作用。
  • 非常感谢,但朋友们检查 pub.dev 以安装最新版本的软件包。
  • 感谢您的评论,更新了答案中的 JS 导入,并将更新 pubspec 条目。
猜你喜欢
  • 2018-10-10
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-05
  • 1970-01-01
  • 2021-06-16
相关资源
最近更新 更多