通过 firebase 函数添加自定义用户 属性
Add Custom user Property through firebase function
目前在我们的实时数据库中,每个 uid
都有一个 planDetails
节点,其中包含 startDate
、endDate
、planType
等字段。
我想跟踪高级计划有效的用户数量。
我正在尝试通过制作一个每天运行的 firebase 函数并更新布尔自定义用户 属性,比如 isPremiumActive
为真或假来做到这一点。
我不能只跟踪购买高级计划的用户,因为有很多人只参加了一次计划,然后就不再续订了。因此这个词'Active'
我以为这可以通过 firebase SDK 中的 setUserProperty 函数来实现,但结果我们只能在用户登录时使用它。
我得出这个结论是因为这种分析方法不将任何类型的用户 ID 作为参数,并且发现它主要在经过身份验证的用户会话期间使用
然后我尝试在 Google 分析上设置自定义属性,但我想这也遵循相同的趋势。此外,我还没有找到如何通过 firebase 函数更新分析数据的解决方案。
所以基本上我在这里陷入了死胡同,如果有人可以提供替代解决方案或阐明我错过的事情,我会很高兴
无法从后端更新用户属性。您必须使用前端 SDK API.
从后端添加数据的唯一选项是将 Firebase Analtyics 数据导出到 BigQuery,然后将要从后端添加的任何附加数据合并到其中 per-user。您的查询必须将导出的数据与您在后端添加的数据合并。 None 这些额外数据将出现在 Firebase 控制台中 - 您必须通过 BigQuery 完成所有操作。
我能够通过创建这样的函数向分析端点发出获取请求来做到这一点。我知道不推荐这样做,但它完成了工作。
let hitGA = () => {
const GA_TRACKING_ID = "your GA tracking ID"
const GA_CLIENT_ID = "steps to get this will be given in the resources below"
const event = {
category: "pricing",
action: "counted",
label: "num_active_users",
value: 71
}
let request = new XMLHttpRequest();
let message =
`v=1&tid=${GA_TRACKING_ID}&cid=${GA_CLIENT_ID}&aip=1&ds=add-on&t=event&ec=${event.category}&ea=${event.action}&el=${event.label}&ev=${event.value}`
request.open("POST", "https://www.google-analytics.com/collect", true);
request.send(message);
}
P.S。如果您想知道我是如何偶然发现解决方案 a 和其他参考资料的,请阅读 this post
目前在我们的实时数据库中,每个 uid
都有一个 planDetails
节点,其中包含 startDate
、endDate
、planType
等字段。
我想跟踪高级计划有效的用户数量。
我正在尝试通过制作一个每天运行的 firebase 函数并更新布尔自定义用户 属性,比如 isPremiumActive
为真或假来做到这一点。
我不能只跟踪购买高级计划的用户,因为有很多人只参加了一次计划,然后就不再续订了。因此这个词'Active'
我以为这可以通过 firebase SDK 中的 setUserProperty 函数来实现,但结果我们只能在用户登录时使用它。
我得出这个结论是因为这种分析方法不将任何类型的用户 ID 作为参数,并且发现它主要在经过身份验证的用户会话期间使用
然后我尝试在 Google 分析上设置自定义属性,但我想这也遵循相同的趋势。此外,我还没有找到如何通过 firebase 函数更新分析数据的解决方案。
所以基本上我在这里陷入了死胡同,如果有人可以提供替代解决方案或阐明我错过的事情,我会很高兴
无法从后端更新用户属性。您必须使用前端 SDK API.
从后端添加数据的唯一选项是将 Firebase Analtyics 数据导出到 BigQuery,然后将要从后端添加的任何附加数据合并到其中 per-user。您的查询必须将导出的数据与您在后端添加的数据合并。 None 这些额外数据将出现在 Firebase 控制台中 - 您必须通过 BigQuery 完成所有操作。
我能够通过创建这样的函数向分析端点发出获取请求来做到这一点。我知道不推荐这样做,但它完成了工作。
let hitGA = () => {
const GA_TRACKING_ID = "your GA tracking ID"
const GA_CLIENT_ID = "steps to get this will be given in the resources below"
const event = {
category: "pricing",
action: "counted",
label: "num_active_users",
value: 71
}
let request = new XMLHttpRequest();
let message =
`v=1&tid=${GA_TRACKING_ID}&cid=${GA_CLIENT_ID}&aip=1&ds=add-on&t=event&ec=${event.category}&ea=${event.action}&el=${event.label}&ev=${event.value}`
request.open("POST", "https://www.google-analytics.com/collect", true);
request.send(message);
}
P.S。如果您想知道我是如何偶然发现解决方案 a 和其他参考资料的,请阅读 this post