java - 每个用户帐户的唯一 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 是唯一的,即使它在同一设备上多次生成?我更喜欢这种方法的原因是,一次取消用户对所有主题的订阅很简单,而且推送通知可以发送给特定用户。
解决方案
Firebase 是否确保 Instance-Id 是唯一的,即使它在同一设备上多次生成?
重新生成实例 ID 确实总是会产生唯一值。只要您确保在用户注销时删除实例 ID,下次您将获得一个新的令牌。
为确保您的令牌注册表(您存储令牌的地方)不会累积太多过时的令牌,请务必在用户注销时删除令牌,或者在发送消息时发现令牌不再有效时。请参阅我对这个问题的回答。
推荐阅读
- visual-c++ - 如何使用其他预处理器指令定义宏?
- postgresql - 忽略 Postgres 插入中不存在的列?(用于开发目的)
- javascript - JavaScript 警报未显示在浏览器页面中,但显示在屏幕右侧
- marklogic-corb - MarkLogic CORB - 如何在运行 corb 时避免超时
- matlab - matlab deploytool 生成的独立应用程序/使用 OPC 编译在主机系统中失败
- java - Spring Integration Java DSL 使用多个“.channel()”的行为
- sql - ms-access sql-query 中是否有可以提取某个字符串的函数?
- typescript - 如何使用动态字段名称创建 Formik YUP 模式?
- spring-boot - 关于将 spring-data-rest-hal-browser 依赖项添加到我的 Spring Boot 应用程序(v 2.2.4)-我的应用程序无法启动。如何修复它?
- ionic-framework - Ionic 4 拦截 android 后退按钮进行导航