我还是新的firebase和android通知。我希望能够根据某些规则向单个用户发送通知。到目前为止我一直在阅读的是,可以使用以下内容生成令牌:
FirebaseInstanceId.getInstance().getToken()
然后,令牌需要在到期时的某个时刻刷新。
如果可能的话,如何设置这些令牌的到期日期?如果有一千个用户让他们的令牌在同一时间刷新,那么我需要为我的应用服务器做一千次这些令牌的写入。是否存在针对此问题的已知扩展解决方案(例如,保留相同的令牌但仅刷新其到期时间)?
答案 0 :(得分:3)
Firebase documentation on monitoring the token列举了原因:
注册令牌可能会在以下情况下发生变化:
- 该应用删除实例ID
- 该应用已在新设备上恢复
- 用户卸载/重新安装应用
- 用户清除应用数据。
除了删除令牌(上面的第一个选项)之外,您无法控制何时刷新令牌。但与Firebase身份验证令牌不同,Firebase云消息传递的实例ID令牌不会按固定时间表刷新。实例ID令牌刷新相对较少,只需考虑在最大的用例中进行扩展即可。
答案 1 :(得分:1)
不。没有办法只刷新注册令牌的到期。
当注册令牌刷新时,令牌值将会更改。注册令牌本身将过期的事件也是无限期的,并且只能发生在FirebaseInstanceId docs中指定的特定事件:
除以下情况外,实例ID是稳定的:
- 应用删除实例ID
- 应用程序已在新设备上恢复
- 用户卸载/重新安装应用
- 用户清除应用数据
在上述情况下,会生成一个新的实例ID,并且应用程序需要重新创建以前生成的授权令牌onTokenRefresh()。
如上所述,如果刷新令牌,将调用protected void Page_Load(object sender, EventArgs e)
{
string draw = Request.QueryString["draw"]; //it works
object columns1 = Request.QueryString["columns"]; //null
object columns2 = Request["columns"]; //null
var columns3 = Request["columns"]; //null
}
,并且您应该处理将其发送到App Server并删除过期的旧令牌的后续步骤。其他一些东西。