android - 当多个用户使用同一设备访问同一应用程序时如何处理 Firebase 注册 ID( token )

标签 android firebase firebase-cloud-messaging

<分区>

Firebase token ID 是否基于设备的特征,例如手机的 IMEI、PC 的 MAC 等?

我主要关心以下问题:

多个用户使用给定设备访问同一个应用程序(想想 FB)。

  1. 用户 1 登录应用,Firebase 提供 token (例如 FirebaseInstanceId.getInstance().getInstanceId())。
  2. 用户 1 注销
  3. 用户 2 登录。
  4. #1 中的相同 Firebase 注册 token 现在将用于用户 2 吗?

是否为用户 2 生成了一个新的 firebase ID,或者这是否需要由应用程序本身手动处理? 我觉得这更多是应用程序开发人员的责任,他们监控谁登录等等,旧的注册 ID 被取消,同时为这个新登录生成新的注册 ID?

澄清一下 - 我只使用 Firebase 云消息传递,没有使用 Firebase 的其他任何东西,所以我将管理来 self 自己的服务器的通知。这意味着我会将 Firebase 注册 ID 存储在我自己的数据库中,以了解为哪个 Firebase 注册 ID 生成通知(例如,用户收到来自另一个用户的消息)。

最佳答案

根据Firebase Docs :

The registration token may change when:

  • The app deletes Instance ID
  • The app is restored on a new device
  • The user uninstalls/reinstall the app
  • The user clears app data.

这意味着 token 不会在用户 1 注销时更改。解决方法是调用 deleteInstanceId()在用户注销时。这将删除当前的实例 ID,如果启用了 Firebase 云消息传递自动初始化,则会异步生成一个新的实例 ID。

请注意 docs还提到这是一个阻塞函数,所以不要在主线程上调用它。

关于android - 当多个用户使用同一设备访问同一应用程序时如何处理 Firebase 注册 ID( token ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51468878/

相关文章:

android - 如何在Android上制作附加系统

android - 是否可以在没有音频源的情况下使用 CamcorderProfile?

mysql - 我怎样才能使我的社交网络应用程序更有效地存储和检索数据?

java - 为什么我的 onActivityResult() 总是返回 false?

android - 尝试从 Firebase 向单个设备发送通知时应用程序崩溃

firebase - 无法获取Firebase访问 token

java - 回收器适配器中菜单的 setOnMenuItemClickListener

java - Android Library编译到哪里?

SwiftUI:图像异步更改后 View 不会更新

ios - 接收有关添加的 Firebase 数据库子级的推送通知