我正在尝试为我的安卓应用程序使用 firebase 云消息服务,并试图找到在数据库服务器中管理注册 ID 的最佳方法。我正在考虑在我的数据库中创建带有userID,registrationId
的新表(其中 userID 对于每个用户都是唯一的(,并在用户成功登录后插入新记录,并在用户注销时删除该记录。但是在某些情况下注册 ID 会被刷新,我可以获取新的注册 ID 以将其保存在数据库中。但是我怎样才能获得旧的注册 ID 来删除它?
有没有更好的方法来管理数据库中的注册 ID?
注意:一台设备可以访问一个帐户,但可能有许多设备使用同一帐户。
根据用户的不同,您可能还希望为他们使用的每个设备设置一个标识符。但为了更简单的解释,我将采用每个用户只有一个设备的场景。
如果您使用的是Firebase数据库,那么构建节点的最简单方法是这样的:
pushTokens/
$userId: <registration_token_here>
就这么简单。只需配对在应用中使用的userId
(可能用于身份验证(,然后将令牌放置在那里。注销时,将用户注销。当用户当前登录并且令牌刷新时,onTokenRefresh()
处理它,将新令牌发送到数据库,并替换旧令牌。决定保留旧的用于日志记录目的是您的决定。
可能有用的帖子:
- Firebase 云消息传递 - 管理注册令牌
- 管理 FCM 设备组