Flutter Web 在 Firebase 托管中不起作用

Posted

技术标签:

【中文标题】Flutter Web 在 Firebase 托管中不起作用【英文标题】:Flutter web not working in firebase hosting 【发布时间】:2020-08-18 10:29:01 【问题描述】:

我在 Flutter Web 中使用 Firestore。在本地,即 android Studio chrome 中一切正常。但是,当我在 firebase 托管(firebase 服务)中托管时,它不起作用。浏览器控制台给出错误。

Uncaught TypeError: firebase.firestore is not a function
    at Object.arO (top_level.dart:125)
    at cloud_firestore_web.dart:26
    at alN.a (async_patch.dart:308)
    at alN.$2 (async_patch.dart:333)
    at Object.N (async_patch.dart:238)
    at Object.T8 (main.dart:8)
    at js_helper.dart:3221
    at js_helper.dart:3221
    at dartProgram (js_helper.dart:3221)
    at js_helper.dart:3221

pubsec.yaml

name: chitragupta
description: Monthly expenditure tacker

version: 1.2.0+2

environment:
  sdk: ">=2.2.2 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^0.1.2
  flutter_launcher_icons: ^0.7.2
  material_design_icons_flutter: ^4.0.5145
  firebase_core: ^0.4.3+2 #For firebase database
  firebase_auth: ^0.16.0 #firebase Authentication
  shared_preferences: ^0.5.7 #for local storage
  shared_preferences_web: ^0.1.2+4
  intl: ^0.16.0
  flutter_datetime_picker: ^1.2.6
  fluttertoast: ^3.1.3
  package_info: ^0.4.0+13
  image_picker: ^0.6.2+3
  http: ^0.12.0+2
  charts_flutter: ^0.8.1
  flutter_svg: ^0.17.4
  cloud_firestore: ^0.13.5


dev_dependencies:
  flutter_test:
    sdk: flutter


flutter:

  uses-material-design: true
  assets:
    - assets/

flutter_icons:
  image_path: "assets/logo.png"
  android: true
  ios: true

我不知道那行代码在我的颤振项目中写在哪里。有什么帮助解决这个问题吗?

更新:应用程序在 Godaddy 托管中运行良好,但在 Firebase 托管中无法正常运行

【问题讨论】:

嗨@BLB,您需要从错误中提到的文件中添加一些代码,以便更好地理解您的情况。您能否编辑您的问题并从您的文件top_level.dartloud_firestore_web.dart 添加代码?这应该有助于更好地了解错误的原因。 那些是生成的文件。它们甚至不在我的项目中。可能它们来自 cloud_firestore 插件。 确保您使用的哪个 firestore pub 包适用于 flutter web。请分享您的pubspec.yaml 或至少是依赖项。 问题仅与 Firebase 托管有关。我部署在 Godaddy 主机中,它运行良好。将更新问题。 嗨@BLB 在官方存储库中,top_level.dart 文件,例如,是一个应该在你的库中创建和配置的文件,以便在 Firebase 中使用 Dart - 你可以访问它here。您能否告知您是否按照此存储库的主文件中的指示连接到 Firestore? 【参考方案1】:

我也遇到过类似的问题。我通过确保在我的 index.html 文件中引用了所有正确的脚本来修复它。在此处查看第 5 步下的可用库:https://firebase.google.com/docs/web/setup#available-libraries

此处包含的脚本标签不包括脚本标签中的延迟,您可能需要它来解决您的问题,例如。 &lt;script defer src=...&gt;.

【讨论】:

以上是关于Flutter Web 在 Firebase 托管中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何更新在 Firebase 托管中部署的 Flutter Web 版本

Flutter Web 应用程序在部署到 Firebase 托管后返回空白页面

我的 Flutter web 在本地构建得很好,但在 firebase 托管中不起作用

带有 Firebase 托管的 Flutter web 无法从存储中加载图片

Firebase 托管 Flutter Web 应用程序未清除首次部署的缓存

使用 Firebase 托管部署我的 Flutter Web 应用程序后出现错误