使用 firebase 消息传递时为不同用户接收相同的令牌

我使用下面的代码从 firebase 获取令牌:

I use the code below to obtain a token from firebase :

const messaging = firebase.messaging();

messaging.requestPermission()
  .then(() =>{
    return firebase.messaging().getToken();
  }).then(token => {
     saveTokentoServer(user.uid, token);
  })

问题是我为不同的用户收到了相同的令牌.我无法发送有针对性的消息.

the problem is that i receive the same token for different users. I am not able to send out targetted messages.

有谁知道我如何为不同的用户获取不同的令牌?

Does anyone know how I can obtain different token for different users ?

我花了两天时间寻找答案.为什么我的 Web 应用程序没有收到唯一令牌?

I have spent two days search for answers. Why is my web application not receiving unique token ?

推荐答案

Firebase 云消息传递令牌标识特定设备中的应用安装.它们不识别特定用户.因此,在您的情况下,如果多个用户在同一个浏览器配置文件中访问您的应用,他们将获得相同的令牌.

Firebase Cloud Messaging tokens identify an installation of an app in a specific device. They do not identify a specific user. So in your case, if multiple users access your app in the same browser profile, they will get the same token.

我自己没有尝试过,但我认为您可以 删除令牌(通常在用户退出时).然后请求权限和像往常一样为新用户获取新令牌.

I haven't tried this myself, but I think you can delete the token (typically when the user signs out). Then request permission and get the new token for the new user, as usual.

相关文章