首页 > 解决方案 > 每个用户帐户的唯一 Firebase Instance-Id

问题描述

我不确定如何正确处理同一设备上的不同用户帐户,因为 Firebase 只为每个设备创建一个 Instance-Id。

因此,我认为可以在用户注销时删除 Instance-Id,并在新用户登录时创建新的。

登录时:

FirebaseInstanceId.getInstance().getInstanceId().addOnCompleteListener(task -> System.out.println(task.getResult().getToken()));

注销时:

FirebaseInstanceId.getInstance().deleteInstanceId()

Firebase 是否确保 Instance-Id 是唯一的,即使它在同一设备上多次生成?我更喜欢这种方法的原因是,一次取消用户对所有主题的订阅很简单,而且推送通知可以发送给特定用户。

标签: javaandroidfirebasepush-notification

解决方案


Firebase 是否确保 Instance-Id 是唯一的,即使它在同一设备上多次生成?

重新生成实例 ID 确实总是会产生唯一值。只要您确保在用户注销时删除实例 ID,下次您将获得一个新的令牌。

为确保您的令牌注册表(您存储令牌的地方)不会累积太多过时的令牌,请务必在用户注销时删除令牌,或者在发送消息时发现令牌不再有效时。请参阅我对这个问题的回答


推荐阅读