使用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
相关产品推荐
相关产品推荐

