Flutter 2.0 网页版与 firebase 消息传递无法正常工作

Rag*_*ddy 5 flutter flutter-dependencies flutter-web flutter2.0

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

\n

该应用程序的工作方式与早期的移动版本相同。但是在网络版本中执行时出现下面提到的错误并且无法解决。

\n

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

\n
flutter run --no-sound-null-safety\n
Run Code Online (Sandbox Code Playgroud)\n
\n

错误日志:

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

颤振医生报告:

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

Hut*_*yad 6

2021 年 9 月更新:


将此8.6.1SDK 添加到您的 中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>
Run Code Online (Sandbox Code Playgroud)

目前为止,这是推荐的一款。运行它并且没有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
Run Code Online (Sandbox Code Playgroud)