Firebase通知发送给受众时未能到达所有应该接收到通知的设备。

3
我有一个有趣的情况。一段时间以来,我一直根据单个用户属性收集观众。现在,已经包括了大量的设备,这些观众都是为iOS设备设置的。
然后我向该观众发送了一条通知,我发现一些设备接收到了该通知,而其他一些则没有。为什么会这样呢?
实验表明,未接收到通知的设备,可以接收针对单个设备的通知。它们还可以接收发给所有用户的通知。这使我怀疑这与观众有关。我已经验证了至少一个设备,在问题用户属性方面有正确的值,但是可能由于登录应用程序的帐户不同,在过去的几天里设备可能具有不同的属性值,有时同时安装了两个相同版本的应用程序。
我有类似的Android观众,据我所知,所有观众成员都可以收到通知。
观众数量达到数千,因此信息仅基于我周围看到的少量设备,以及Firebase和Google Analytics。
从Firebase文档中,我了解到“一个用户被分配到观众之后,就成为观众的永久成员”,这解释了为什么两个相反的观众组合可能比总用户数更大,但这使得更难理解为什么拥有观众所需属性的某些人不属于它。
有什么想法可以调试或可能的原因。或者更好的办法是如何解决这个问题?由于这是生产软件,我不能发送过多的通知来尝试不同的方法。
1个回答

4

尽管我可能仍然不知道所有可能的原因,但在我们的情况下,至少有两件事似乎对此产生了一些影响,第三件事如果没有正确理解可能是原因:

1)我们的应用程序使用单个调用setUserPropertyString注册值列表,在某些情况下,字符串超过24个字符的限制,导致属性未设置,用户/设备未包括在受众中。

2)当向iOS应用程序发送通知时,应选择“高”优先级,否则可能甚至很可能通知无法到达设备。

3)Firebase控制台上组合多个受众的文本并不是那么清晰,尤其是“不包括...”文本在我看来可能更清晰。这是它们在实践中的含义:

  • 全部包括 == AND,如果用户包括在所有选定的受众中,则发送通知

  • 至少包括一个 == OR,如果用户包括在所选受众中的至少一个中,则发送通知

  • 不全部包括 == NAND,如果用户未包括在所有选定的受众中,则发送通知,但用户可以包括其中的一些

  • 不包括至少一个 == NOR,仅当用户未包括在所选受众中的任何一个中时,才发送通知


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接