我想将 firebase 连接到我的 flutter web 应用程序。 我遵循了网络、官方和建议上的所有解决方案。
我的颤振版本:Flutter 2.6.0-12.0.pre.522
我在控制台内总是出现此错误:
Uncaught SyntaxError: Cannot use import statement outside a module
来自 build/web 的 index.html 内的代码: (我的 firebase 版本:9.21.0)
<body>
<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-auth.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-storage.js"></script>
<script>
import firebase from 'firebase/compat/app';
import 'firebase/compat/auth';
import 'firebase/compat/firestore';
const firebaseConfig = {
apiKey: "",
authDomain: "",
projectId: "",
storageBucket: "",
messagingSenderId: "",
appId: ""
};
const app = initializeApp(firebaseConfig);
const db = getFirestore(app);
</script>
main.dart
import 'package:firebase_core/firebase_core.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
firebase文件夹只有一个hosting.(numbers).cache
firebase.json:
{"hosting": {
"public": "build/web",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}
和我的酒吧spec.yaml:
dependencies:
flutter:
sdk: flutter
firebase_core: ^1.8.0
firebase_auth: ^3.1.4
我遇到了同样的问题,但我使用以下更新的方法解决了它。 (我用的是最新的包。)
看起来有些脚本标签不再需要了。
https://firebase.flutter.dev/docs/overview
https://firebase.flutter.dev/docs/manual-installation/
配置信息放入
Firebase.initializeApp (options: FirebaseOptions(...))
在 dart 代码方面。
问题是使用了index.html 中使用的导入语句。而是添加脚本标签
<script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-app.js"></script>