【发布时间】:2022-06-22 22:46:04
【问题描述】:
我的颤振应用程序与 firebase 集成,一切都很好,但是当我将 firebase 项目迁移到客户端 firebase 控制台时,添加了他的 google 服务文件,更改了 DefaultFirebaseOption.currentplatform 文件凭据,但每当我尝试运行我的应用程序时都会出错。 我的主要方法是这样的:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
token = await FirebaseMessaging.instance.getToken();
Provider.debugCheckInvalidValueType = null;
runApp(const MyApp());
}
错误是:
E/flutter (28330):[ERROR:flutter/lib/ui/ui_dart_state.cc(209)] 未处理的异常:[core/duplicate-app] 一个名为“[DEFAULT]”的 Firebase 应用已经存在。
我在这里搜索并从这里找到了solution,并像这样更新了我的主要方法:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
if (Firebase.apps.isNotEmpty) {
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
}else{
Firebase.app()
}
//await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
token = await FirebaseMessaging.instance.getToken();
Provider.debugCheckInvalidValueType = null;
runApp(const MyApp());
}
但这次我没有收到任何错误,但我的应用程序 UI 没有显示,我只是看到黑屏。 我一直在尝试解决这个问题 4 到 5 个小时,但没有找到解决方案。任何帮助将不胜感激。
更新 我在两个场景中都提供了名称参数,并且我的应用程序在我第一次安装时运行良好,但是当我重新启动或关闭应用程序并重新运行它时,我遇到了与上述情况相同的错误。
【问题讨论】:
-
我认为条件应该不同:``` if(Firebase.apps.isEmpty) { await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); } ```
标签: firebase flutter dart firebase-cloud-messaging