是否必须将Firebase推送密钥写入db,或者只要计算一个,就保证唯一性?

时间:2017-08-18 18:06:24

标签: firebase firebase-realtime-database firebase-security

是否需要将推送密钥写入Firebase数据库,以便将来保持唯一,或者在计算的客户端和if;例如,它还没有写入数据库而另一个客户端(客户端B)生成的密钥可能与客户端A的密钥相同?

我希望我清楚我要问的是什么。

2 个答案:

答案 0 :(得分:2)

它很可能是一个GUID,意味着一个全局唯一编号,永远不会再生成。 (一经发布)。

看看这里:link

答案 1 :(得分:0)

试图更好地推理它;根据我的准备和理解,它似乎不是一个全局机制,以确保它们是唯一的,除了它被计算两次的机会是无穷小的事实(see here)加上部分每个ID都是根据服务器timeStamp计算的。所以基本上,如果有两个用户在完全相同的服务器时间创建pushID(无限极低的机会),仍然有机会,但它实际上非常接近0,使pushID相同,因为pushID的第二部分也是由一个机制来实现的确保在1/2 ^ 120的情况下发生一些事情。

将两个部分组合在一起,您几乎有0次重新出现的可能性。但是,对于像我这样偏执的人来说,数学上不是0; P
如果我错了,请随意纠正我。