首页 > 解决方案 > 带参数的 Firebase 自定义事件是否需要额外的时间/设置才能在调试视图中显示

问题描述

当我调用此函数时,debug.log 会正确显示,但 firebase 事件根本不会显示在 DebugView 中

public void fb_GameFail(int id)
    {
        Debug.Log("FIREBASE EVENT: LEVEL FAILED @Lvl " + (id + 1));
        FirebaseAnalytics.LogEvent("level_fail:", "failID", (id + 1));
        //FirebaseAnalytics.LogEvent("dead_player");
    }

但是,如果我评论“level_fail”事件,并启用“dead_player”事件(一个有参数,另一个没有),“dead_player”事件会正确并实时地出现在 DebugView 中。

我在这里错过了什么吗?自定义事件是否需要更多时间才能出现?

我不明白的是,我确实有另一个带有参数的事件,并且它正确显示:

在此处输入图像描述

其代码与“level_fail”事件完全相同:

 public void fb_LevelUp(int id)
    {
        Debug.Log("FIREBASE EVENT: LEVEL COMPLETE @Lvl " + (id + 1));
        FirebaseAnalytics.LogEvent("level_up", "ID", id + 1);

    }

但这一直是我开始使用firebase以来的主要问题,“level_up”事件从第一天开始就完美显示,而“level_fail”没有,我可以添加的唯一评论是最初这两个事件具有相同参数名称,它们都使用名为“ID”的文本

FirebaseAnalytics.LogEvent("level_up", "ID", id + 1);
 FirebaseAnalytics.LogEvent("level_fail", "ID", id + 1);

但我非常怀疑这会是问题所在。

PS:

我记得点击“Level_up”事件前面的“3个点”以启用参数跟踪,问题是“level_fail”事件从未出现过。

另外,如果不清楚,我将 Firebase 与 Unity (2018.1.0f2) 一起使用。

谢谢!

编辑:

忘了说我还尝试使用参数向测试事件发送垃圾邮件,它也有效: 在此处输入图像描述

但是当做同样的事情但使用“levelFail”事件时,什么也没有出现:

private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            //  FirebaseAnalytics.LogEvent("testingEVENT", "testID", Random.Range(0, 10));
            fb_GameFail(GameManager._gameManager._currentLevel);
        }
    }

知道 logcat 显示该方法被正确调用:

在此处输入图像描述

标签: androidfirebaseunity3dfirebase-analytics

解决方案


从您的代码:

public void fb_GameFail(int id)
{
    Debug.Log("FIREBASE EVENT: LEVEL FAILED @Lvl " + (id + 1));
    FirebaseAnalytics.LogEvent("level_fail:", "failID", (id + 1));
    //FirebaseAnalytics.LogEvent("dead_player");
}

我可以看到您在“level_fail”的事件名称中使用了分号。据我所知,自定义事件名称中只能包含字母、数字和下划线。也许这就是导致问题的原因?

更新:感谢@Pux0r3 提供文档的相关链接: firebase.google.com/docs/reference/cpp/group/event-names


推荐阅读