Firebase 分析 过滤器按用户 ID分类。

17
Firebase Android SDK提供了一个名为setUserId(String id)的方法用于分析,现在我已经启用了Firebase日志记录,并且每次调用setUserId(1234)方法时,我都能在日志中看到以下内容:设置用户属性(FE):_id, 1234
我的问题是Firebase控制台为什么不允许我们按此属性进行过滤,即使没有userId和_id属性,我甚至尝试将_id作为属性添加到控制台中,但Firebase不允许属性名称以下划线开头。
我是否真的必须停止调用该方法并只使用setUserProperty("userId", 1234)或者有什么我忽略的东西...
3个回答

27

我已经花费了几个小时的时间并找到了我所寻找的答案,希望这能节省其他人的时间。

过滤Firebase的用户ID属性的唯一方法是创建一个受众群体,你可以在那里选择从setUserId(String id)方法提供的用户ID属性。

但这还是有点不好,因为您将无法查看受众群体创建之前用户/用户的任何事件。


2
如何在Firebase Analytics中创建受众? - wonsuc
1
谢谢!你找到解决方案了吗?你是使用setUserId进行过滤还是使用setUserProperty - wonsuc
1
当用户登录时使用setUserProperty(“userId”,1234),并在用户注销时使用setUserProperty(“userId”,null)将是更好的解决方案。这将允许您过滤事件。不是吗? - binaryKarmic
@binaryKarmic 为什么需要用 null 调用 setUserProperty? - Gruntcakes
1
@shaqirsaiyed 这可能已经过时了,因为我已经一年没有使用 Firebase 了,但是从我当时的记忆中,如果您创建一个受众群体,您将能够按用户 ID 过滤数据,但您只能看到在创建受众群体之后创建的数据。 - Kostyantin2216
显示剩余4条评论

9

我为这个问题苦恼了很久。起初,当我无法找到如何在使用官方API setUserId() 设置的Firebase分析仪表板中使用用户ID进行过滤时,我感到非常愚蠢。当我尝试寻找答案时,我意识到我不是唯一一个遇到这个问题的人。最终,我成功地按照用户ID过滤事件的方法如下。


在Android代码中,我使用setUserId()方法设置用户ID。当我看到bigQuery将此属性命名为user_id时,我想尝试一下,在Firebase仪表板中添加一个新的用户属性,希望它能获取报告的ID。New user property 然后...它起作用了...现在我可以根据用户ID过滤新事件enter image description here

1
我尝试了,但它说“用户属性不能命名为'user_id'” :( - gustavopch
2
我检查了一下,看起来Google又改变了什么。为什么Google为什么这样做?旧项目仍然有它,但无法添加到新项目中。他们确保你永远不会在Firebase中找到user_id。有没有一种方法可以推送到BigQuery?或者希望他们让它更容易些。 - HBB20

1

在受众群体中,您需要为字段选择包含、完全匹配或正则表达式。

因此,要过滤用户,您必须将所有用户添加到受众中,这看起来很繁琐。

使用setUserProperty不是更好吗?您使用它时遇到了什么问题吗?


3
使用 setUserId() 和 setUserProperty() 有什么区别,这会如何影响在受众中搜索/过滤特定用户 ID? - Gruntcakes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接