12C是靠啥来区别不同的设备的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12C是靠啥来区别不同的设备的相关的知识,希望对你有一定的参考价值。

参考技术A 12C是靠地址编码来区别不同的设备的。12C是一种简单、双向二线制同步串行总线。12C上可以挂多个设备,为了区分设备,每个设备都有自己的地址编码。所以12C是靠地址编码来区别不同的设备的。

firebase 使用啥来生成注册令牌?

【中文标题】firebase 使用啥来生成注册令牌?【英文标题】:What does firebase use to generate a registration token?firebase 使用什么来生成注册令牌? 【发布时间】:2021-08-24 20:05:47 【问题描述】:

我已经使用 firebase 创建了一个推送通知系统。它为用户生成并保存一个令牌,然后在登录时显示他们的订阅状态。它工作正常,不幸的是每个用户只有一台设备,他们最近登录的设备。我想允许每个用户使用多个设备。

我假设 firebase 使用每个设备独有的 ID 来生成令牌。如果我的假设有误,请指出正确的方向。

【问题讨论】:

"我想允许每个用户使用多个设备。" - 这完全在您的控制之下。只需构建您的系统以记住该用户的每个设备令牌。这是一个很常见的实现路径。不要使用令牌来识别用户 - 使用令牌来识别设备上的应用程序。 目前就是这样,令牌与我数据库中的用户相关联。我想将令牌与当前用户登录的设备相关联。这样我就可以显示特定设备的订阅状态。 您不能为自己分配一个令牌,也不能复制 FCM 用来生成令牌的逻辑(对于给定的设备,它会随着时间而改变)。您所能做的就是响应您从 API 获得的内容。 复制 FCM 的令牌生成逻辑正是我希望完成的,很遗憾我做不到。感谢您的帮助。 【参考方案1】:

正如 Doug 所说,由于 FCM 不会将其令牌与用户相关联,这可能是您的实施中的一些限制。

您需要在数据库中允许每个用户使用多个 ID 令牌,然后发送给当前用户的所有令牌。如果设备/应用安装可以在用户之间共享,您需要在用户退出/新用户登录时删除用户与该安装的令牌之间的关联。

关于将令牌与用户关联,请参阅:

Is FCM (firebase cloud messaging) Token for one device or for one account? When to register an FCM token for a user How to get Firebase user id from FCM token? (in admin code on server)

最后,您还需要清除 FCM 标记为不再有效的所有令牌,否则您将不断添加越来越多的令牌,这些令牌可能不再有效。

关于删除过期令牌,请参阅:

When device token expires, is it automatically removed from FCM device group? How do I identify and delete the expired FCM token on server?

【讨论】:

所以 firebase 不会将令牌与设备相关联? 我不只是希望允许每个用户使用多个令牌,我还想显示用户当前登录的设备的订阅状态。 令牌与特定设备上的应用实例相关联。因此,如果一台设备上的 5 个应用程序使用 FCM,即 5 个唯一令牌,如果一个应用程序使用 FCM 并在 5 个设备上,那么这也是 5 个唯一令牌。因此,您可以使用 FCM 令牌来定位特定设备中的特定应用,但与用户的任何关联都必须来自您自己的代码。 你没有解决我的问题,不过我发现我和 Doug 的谈话很有帮助。

以上是关于12C是靠啥来区别不同的设备的的主要内容,如果未能解决你的问题,请参考以下文章

oracle11g和12c有啥区别?

tcp协议通过啥来区分不同的连接

中国地图上各省市的颜色不同,那请问是根据啥来分颜色的

tcp协议通过啥来区分不同的连接

Oracle12c多租户CDB 与 PDB 参数文件位置探讨查询 CDB 与 PDB 不同值的参数

:I/O设备与I/O系统