You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用firebase_analytics出现''是无效事件名错误的原因咨询

Firebase Analytics 报错:'' is an invalid event name. 原因及解决办法

我按照官方文档配置firebase_analytics记录用户事件,但点击按钮触发事件时,日志输出:

W/FA ( 7136): '' is an invalid event name.

相关代码如下:

main方法

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

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

  runApp(const MyApp());
}

MyApp类

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  static FirebaseAnalytics analytics = FirebaseAnalytics.instance;
  static FirebaseAnalyticsObserver observer =
      FirebaseAnalyticsObserver(analytics: analytics);

  @override
  Widget build(BuildContext context) {
    return 
        ...
        navigatorObservers: <NavigatorObserver>[observer],
        routes: {
          '/': (context) => const MainScreen(),
          'product': (context) => ProductScreen(
                analytics: analytics,
                observer: observer,
              ),
        },
      ),
    );
  }
}

事件触发代码

body: TextButton.icon(
      onPressed: () async {
        await analytics.logEvent(
          name: 'test_event',
          parameters: <String, dynamic>{
            'string': 'string',
          },
        );
      },
      icon: const Icon(Icons.analytics),
      label: const Text("Test Analytics")),

问题原因

你初始化Firebase时指定了name: "test_app",但FirebaseAnalytics.instance默认关联的是未命名的FirebaseApp实例,和你创建的命名实例不匹配,导致Analytics无法正常工作,触发事件时出现空事件名错误。

解决办法

修改MyApp中Analytics实例的获取方式,明确关联到你初始化的命名FirebaseApp:

static FirebaseAnalytics analytics = FirebaseAnalytics.instanceFor(app: Firebase.app("test_app"));
static FirebaseAnalyticsObserver observer =
    FirebaseAnalyticsObserver(analytics: analytics);

调整后,Analytics就能正确绑定到你的命名FirebaseApp,触发事件时不会再出现该错误。

内容的提问来源于stack exchange,提问作者Hazem Elmahy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 12:30:40