名为 "[DEFAULT]" 的 Firebase 应用已存在



我的flutter应用程序与firebase集成,一切都很好,但当我将firebase项目迁移到客户端firebase控制台时,添加了他的谷歌服务文件,更改了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(:[错误:flutter/lib/ui/ui_start_state.cc(209(]未处理的异常:[core/dupplicate-app]一个名为"的Firebase应用程序;[DEFAULT]";已存在。

我在这里搜索,从这里找到了一个解决方案,并更新了我的主要方法,如下所示:

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个小时了,但没有找到解决方案。任何帮助都将不胜感激。

更新我在两个场景中都提供了name参数,我的应用程序在第一次安装时运行良好,但当我重定向或关闭应用程序并重新运行时,我遇到了与上述情况相同的错误。

我在使用flatterfire CLI按口味创建firebase应用程序时遇到了类似的问题。我意识到flatterfire在不同的项目中创建了同名的应用程序。然后我尝试了两种方法,都奏效了。

  • 1st:手动更改每个firebase项目中的应用程序名称。

  • 第二:初始化时添加参数名称,例如在main_dev.dart 中

    await Firebase.initializeApp(
    name: "dev project",
    options: DefaultFirebaseOptions.currentPlatform);
    

添加名称参数是为了避免问题,但并不能解决真正的问题。

在我的案例(Flutter(中,我一直在使用firebase_options.dart生成的文件,而在每个android风格目录中仍然有一些旧的谷歌服务.json文件

android/app/src/<flavor>/google-services.json

在ios:上也是如此

ios/Runner/<flavor>/GoogleService-Info.plist

删除那些旧文件可以解决问题。

如果没有删除,请在之后进行"Flutter clean"并手动删除android/build

在处理firebase项目和升级包时出错。

修复

flutter clean
flutter pub get

然后重新构建项目。

我在不同的项目中有相同名称的应用程序,这似乎不会导致错误。

在我的案例中,不正确的GoogleService-Info.plist从下载文件夹链接到了xCode中。但正确的是在Runner文件夹中,所以我认为这没关系。所以在Build Phases -> Copy Bundle Resources中检查GoogleService-Info.plist是否存在,路径是否正确。

这可能发生在过时的谷歌服务文件中,或者使用flutter fire工具从项目切换到另一个项目

android/app/src/<flavor>/google-services.json

ios/Runner/<flavor>/GoogleService-Info.plist

lib/firebase_options.dart

然后写这些命令

1-flutter clean

2-然后安装flatterfire cliflutterfire configure

3-flutter pub get这应该可以解决问题

cawait Firebase.initializeApp(.....中挂起带有name的名称将导致firebase服务出现问题

这对我有效

if (Platform.isAndroid) {
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
} else if (Platform.isIOS) {
await Firebase.initializeApp();
}

尝试

1(颤振清洁&flutter pub获取

2(删除google-services.json并从firebase下载新的google-services.json。如果您正在使用cli,请再次运行fluttefire configure

如果您使用的是flatterfire,您应该匹配FirebaseOptions和google-services.json

firebase_options.dart

static const FirebaseOptions android = FirebaseOptions(
apiKey: 'your_api_ky',
appId: 'your_api_id',
messagingSenderId: '...',
projectId: '...',
storageBucket: '...',
);

谷歌服务.json

"project_info": {
"project_number": "...",
"project_id": "...",
"storage_bucket": "..."
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "your_api_id",
"android_client_info": {
"package_name": "com.app_your"
}
},
"oauth_client": [
{
"client_id": "",
"client_type": 3
}
],

相关内容

  • 没有找到相关文章

最新更新