是基于设备特性的firebase令牌ID,例如手机的IMEI、PC的MAC等?
我主要关心的是:
多个用户使用给定的设备访问同一个应用程序(想想FB(。
- 用户1登录到应用程序,Firebase提供一个令牌(例如FirebaseInstanceId.getInstance((.getInstanceId(((
- 用户1注销
- 用户2登录
- 来自#1的相同Firebase注册令牌现在将用于用户2吗
是为用户2生成了新的firebase ID,还是需要由应用程序本身手动处理?我觉得这更多的是应用程序开发人员的责任,他们监控谁登录等等,旧的注册ID被取消,而新的登录ID被生成?
只是澄清一下——我只使用Firebase云消息,而不使用Firebase的其他消息,所以我将从自己的服务器管理通知。这意味着我将把Firebase注册ID存储在我自己的数据库中,以知道要为哪个Firebase注册标识生成通知(例如,用户从另一个用户接收消息(。
根据Firebase文档:
注册令牌可能会在以下情况下更改:
- 应用程序删除实例ID
- 应用程序已在新设备上还原
- 用户卸载/重新安装应用程序
- 用户清除应用程序数据
这意味着当用户1注销时,令牌不会更改。解决方法是在用户注销时调用deleteInstanceId((。这将删除当前实例ID,并且如果启用了Firebase云消息自动初始化,则将异步生成新的实例ID。
请注意,文档中也提到这是一个阻塞函数,所以不要在主线程上调用它。