使用 Firebase 远程配置尝试 运行 Flutter WEB 应用程序时出错
Error trying to run a Flutter WEB app, using Firebase Remote Config
我有一个 Flutter 应用程序,使用 Firebase,运行在 iOS 和 Android(模拟器和物理设备)上运行得很好。
我正在尝试为 web 编译并运行它,但在尝试使用 Firebase 服务(特别是 ConfigRemote,但我怀疑它是Firebase 一般问题)。
这是我第一次尝试使用 Firebase 为 web 编译,所以我的知识非常有限...
我做了什么:
- 在 Firebase 控制台上添加了一个网络应用程序
- 已将所需脚本复制到正文标记中 (index.html)
- 添加了所有依赖脚本(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-firestore.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-functions.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-storage.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-remote-config.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-messaging.js"></script>
我遇到的错误(在 await ui.webOnlyInitializePlatform()):
Error: NoSuchMethodError: '<Unexpected Null Value>'
method not found
Receiver: null
Arguments: []
at Object.throw_ [as throw] (http://localhost:64231/dart_sdk.js:5348:11)
at Object.throwNullValueError (http://localhost:64231/dart_sdk.js:5314:15)
at Object._notNull [as notNull] (http://localhost:64231/dart_sdk.js:5667:25)
at new core.Duration.new (http://localhost:64231/dart_sdk.js:123963:168)
at method_channel_firebase_remote_config.MethodChannelFirebaseRemoteConfig.new.setInitialValues (http://localhost:64231/packages/firebase_remote_config_platform_interface/src/method_channel/method_channel_firebase_remote_config.dart.lib.js:230:26)
at Function.instanceFor (http://localhost:64231/packages/firebase_remote_config_platform_interface/src/method_channel/method_channel_firebase_remote_config.dart.lib.js:88:118)
at firebase_remote_config.RemoteConfig.__.get [_delegate] (http://localhost:64231/packages/firebase_remote_config/firebase_remote_config.dart.lib.js:62:131)
at firebase_remote_config.RemoteConfig.__.setConfigSettings (http://localhost:64231/packages/firebase_remote_config/firebase_remote_config.dart.lib.js:138:18)
at _loadRemoteConfig (http://localhost:64231/packages/bla/main.dart.lib.js:299:26)
at _loadRemoteConfig.next (<anonymous>)
at runBody (http://localhost:64231/dart_sdk.js:39250:34)
at Object._async [as async] (http://localhost:64231/dart_sdk.js:39281:7)
at Object._loadRemoteConfig (http://localhost:64231/packages/bla/main.dart.lib.js:293:18)
at main$ (http://localhost:64231/packages/bla/main.dart.lib.js:288:18)
at main$.next (<anonymous>)
at http://localhost:64231/dart_sdk.js:39230:33
at _RootZone.runUnary (http://localhost:64231/dart_sdk.js:39087:58)
at _FutureListener.thenAwait.handleValue (http://localhost:64231/dart_sdk.js:34073:29)
at handleValueCallback (http://localhost:64231/dart_sdk.js:34633:49)
at Function._propagateToListeners (http://localhost:64231/dart_sdk.js:34671:17)
at _Future.new.[_completeWithValue] (http://localhost:64231/dart_sdk.js:34513:23)
at async._AsyncCallbackEntry.new.callback (http://localhost:64231/dart_sdk.js:34536:35)
at Object._microtaskLoop (http://localhost:64231/dart_sdk.js:39374:13)
at _startMicrotaskLoop (http://localhost:64231/dart_sdk.js:39380:13)
at http://localhost:64231/dart_sdk.js:34887:9
网络目前不支持远程配置,请从您的 index.html 中删除该远程配置并在您的应用程序内部,在执行远程配置逻辑之前检查您是否在网络上 运行。
即
void remoteConfigLogic(){
if(!kIsweb) runLogic();
}
kIsweb
是一个 flutter 布尔值,用于告诉您您使用的平台是否为 Web。
Flutter Web 不支持远程配置https://firebase.flutter.dev
我还建议您从 index.html 中删除 js 脚本,并注意您期望远程配置的条件以避免代码中出现更多异常。
我有一个 Flutter 应用程序,使用 Firebase,运行在 iOS 和 Android(模拟器和物理设备)上运行得很好。
我正在尝试为 web 编译并运行它,但在尝试使用 Firebase 服务(特别是 ConfigRemote,但我怀疑它是Firebase 一般问题)。
这是我第一次尝试使用 Firebase 为 web 编译,所以我的知识非常有限...
我做了什么:
- 在 Firebase 控制台上添加了一个网络应用程序
- 已将所需脚本复制到正文标记中 (index.html)
- 添加了所有依赖脚本(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-firestore.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-functions.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-storage.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-remote-config.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-messaging.js"></script>
我遇到的错误(在 await ui.webOnlyInitializePlatform()):
Error: NoSuchMethodError: '<Unexpected Null Value>'
method not found
Receiver: null
Arguments: []
at Object.throw_ [as throw] (http://localhost:64231/dart_sdk.js:5348:11)
at Object.throwNullValueError (http://localhost:64231/dart_sdk.js:5314:15)
at Object._notNull [as notNull] (http://localhost:64231/dart_sdk.js:5667:25)
at new core.Duration.new (http://localhost:64231/dart_sdk.js:123963:168)
at method_channel_firebase_remote_config.MethodChannelFirebaseRemoteConfig.new.setInitialValues (http://localhost:64231/packages/firebase_remote_config_platform_interface/src/method_channel/method_channel_firebase_remote_config.dart.lib.js:230:26)
at Function.instanceFor (http://localhost:64231/packages/firebase_remote_config_platform_interface/src/method_channel/method_channel_firebase_remote_config.dart.lib.js:88:118)
at firebase_remote_config.RemoteConfig.__.get [_delegate] (http://localhost:64231/packages/firebase_remote_config/firebase_remote_config.dart.lib.js:62:131)
at firebase_remote_config.RemoteConfig.__.setConfigSettings (http://localhost:64231/packages/firebase_remote_config/firebase_remote_config.dart.lib.js:138:18)
at _loadRemoteConfig (http://localhost:64231/packages/bla/main.dart.lib.js:299:26)
at _loadRemoteConfig.next (<anonymous>)
at runBody (http://localhost:64231/dart_sdk.js:39250:34)
at Object._async [as async] (http://localhost:64231/dart_sdk.js:39281:7)
at Object._loadRemoteConfig (http://localhost:64231/packages/bla/main.dart.lib.js:293:18)
at main$ (http://localhost:64231/packages/bla/main.dart.lib.js:288:18)
at main$.next (<anonymous>)
at http://localhost:64231/dart_sdk.js:39230:33
at _RootZone.runUnary (http://localhost:64231/dart_sdk.js:39087:58)
at _FutureListener.thenAwait.handleValue (http://localhost:64231/dart_sdk.js:34073:29)
at handleValueCallback (http://localhost:64231/dart_sdk.js:34633:49)
at Function._propagateToListeners (http://localhost:64231/dart_sdk.js:34671:17)
at _Future.new.[_completeWithValue] (http://localhost:64231/dart_sdk.js:34513:23)
at async._AsyncCallbackEntry.new.callback (http://localhost:64231/dart_sdk.js:34536:35)
at Object._microtaskLoop (http://localhost:64231/dart_sdk.js:39374:13)
at _startMicrotaskLoop (http://localhost:64231/dart_sdk.js:39380:13)
at http://localhost:64231/dart_sdk.js:34887:9
网络目前不支持远程配置,请从您的 index.html 中删除该远程配置并在您的应用程序内部,在执行远程配置逻辑之前检查您是否在网络上 运行。
即
void remoteConfigLogic(){
if(!kIsweb) runLogic();
}
kIsweb
是一个 flutter 布尔值,用于告诉您您使用的平台是否为 Web。
Flutter Web 不支持远程配置https://firebase.flutter.dev
我还建议您从 index.html 中删除 js 脚本,并注意您期望远程配置的条件以避免代码中出现更多异常。