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 托管中不起作用的主要内容,如果未能解决你的问题,请参考以下文章