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

Unity 2022.3.14f1中Firebase LogEvent无法触发求助

Firebase Analytics自定义事件不显示问题排查与调试

一、快速开启实时调试模式(无需等待24小时)

要实时查看事件上报情况,按以下步骤开启Firebase Analytics调试模式:

  • 找到Unity项目的Android包名:打开Unity编辑器,进入Player Settings → Android → Package Name(格式类似com.yourteam.yourgame)
  • 确保测试设备通过USB连接电脑,执行adb devices确认设备能被识别
  • 在终端运行命令:
    adb shell setprop debug.firebase.analytics.app 你的包名
    
  • 重启应用后,打开Firebase控制台的Analytics → DebugView,即可实时看到所有触发的事件(包括自定义事件)

二、代码问题排查与优化

1. 移除手动触发的自动事件

first_open是Firebase自动触发的首次安装启动事件,无需手动调用FirebaseAnalytics.LogEvent("first_open");,重复调用可能导致统计异常,建议删除代码中所有手动触发该事件的语句。

2. 规范事件名称

Firebase Analytics建议事件名使用小写字母+下划线格式(如game_start而非GameStart),避免大写字母或特殊字符,部分大小写混合的名称可能无法被控制台正常识别。

3. 确保初始化完成后再上报事件

Firebase初始化是异步操作,Start方法可能在初始化完成前执行,导致事件无法正常发送。优化方案:

  • 添加全局标记位跟踪初始化状态
  • 将事件上报逻辑移至初始化完成的回调中

优化后的代码示例:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Firebase.Extensions;
using Firebase.Analytics;

public class Analytics : MonoBehaviour
{
    private bool _isFirebaseReady = false;

    private void Awake()
    {
        Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(task =>
        {
            var dependencyStatus = task.Result;
            if (dependencyStatus == Firebase.DependencyStatus.Available)
            {
                Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance;
                FirebaseAnalytics.LogEvent("test_event");
                FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventAppOpen);
                
                _isFirebaseReady = true;
                Debug.Log("FBReady");
                // 初始化完成后发送启动事件
                SendLaunchEvents();
            }
            else
            {
                UnityEngine.Debug.LogError(System.String.Format(
                  "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
            }
        });
    }

    private void SendLaunchEvents()
    {
        FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventAppOpen);
        FirebaseAnalytics.LogEvent("game_start"); // 修正为规范命名
        FirebaseAnalytics.LogEvent("test_event");
        FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventLevelStart);
        Events();
    }

    public void EventTriggerTest()
    {
        if (!_isFirebaseReady) return;
        FirebaseAnalytics.LogEvent("test_event"); // 修正命名
        Debug.Log("EventWasLoged");
    }

    public void EventTriggerTest(int number)
    {
        if (!_isFirebaseReady) return;
        FirebaseAnalytics.LogEvent("test_event_param", new Parameter[]
        {
            new Parameter("button_number", number) // 参数名也建议小写下划线
        });
        Debug.Log("EventParamWasLoged");
    }

    public void Events()
    {
        if (!_isFirebaseReady) return;
        Firebase.Analytics.FirebaseAnalytics.LogEvent(
            Firebase.Analytics.FirebaseAnalytics.EventSelectContent,
            new Firebase.Analytics.Parameter(
                Firebase.Analytics.FirebaseAnalytics.ParameterItemId, "0"),
            new Firebase.Analytics.Parameter(
                Firebase.Analytics.FirebaseAnalytics.ParameterItemName, "name"),
            new Firebase.Analytics.Parameter(
                Firebase.Analytics.FirebaseAnalytics.UserPropertySignUpMethod, "Google"),
            new Firebase.Analytics.Parameter(
                "user_id", "0"));
    }
}

三、其他注意事项

  • 调试模式开启后,需在Firebase控制台的DebugView中选择对应的测试设备(设备名称会显示在列表中)
  • 确保测试设备有稳定网络连接,调试模式下事件会实时上传
  • 若调试模式下仍无法看到事件,可通过adb logcat | grep FirebaseAnalytics查看设备系统日志,排查事件发送情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 06:28:19