通过 firebase 函数添加自定义用户 属性

Add Custom user Property through firebase function

目前在我们的实时数据库中,每个 uid 都有一个 planDetails 节点,其中包含 startDateendDateplanType 等字段。

我想跟踪高级计划有效的用户数量。

我正在尝试通过制作一个每天运行的 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