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

调用OneSignal login()函数时重复创建用户记录的问题求助

调用OneSignal login()函数时重复创建用户记录的问题求助

大家好,我最近在用OneSignal Web SDK实现推送通知功能,想要通过外部ID来跨设备识别用户,但碰到了一个头疼的问题:

当用户成功登录后,我调用OneSignal.login(externalID)来关联用户的外部ID与OneSignal账号,但OneSignal并没有把当前SDK加载时生成的user_id和这个外部ID绑定,反而新建了一条独立的用户记录。现在我的OneSignal后台里有两条用户记录:

  • 一条带有externalID,但没有推送订阅信息
  • 另一条推送订阅状态为push:subscribed,但没有绑定externalID

只有当用户登出再重新登录时,OneSignal才会把这两条记录合并成一条正确的关联记录。

这是我在用户登录成功后执行的Vue代码:

OneSignalDeferred.push(async function (OneSignal) {
      const id = await getUserId()

      console.log(id)
      console.log(OneSignal.User.onesignalId)

      await OneSignal.login(id).catch((error) => {
        console.error('OneSignal login error: ', error)
      })
    })

我已经确认user_id和OneSignal.User.onesignalId都已经正确加载,数值也准确无误,没有出现未加载的情况。

预期行为

  • 用户只需登录一次,externalID就能正确关联到已有的推送订阅记录
  • OneSignal后台不会生成多条重复的用户记录

备注:内容来源于stack exchange,提问作者Anthony Li

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 10:24:31