发送给受众的Firebase通知无法到达应有的所有设备

时间:2017-08-30 10:11:34

标签: ios firebase firebase-cloud-messaging

我有一个有趣的情况。有一段时间以来,我一直在收集基于单个用户属性的受众。现在它包含了大量的设备。观众是ios设备。

然后我向该观众发送了一个通知,我看到有些设备会收到该通知,有些则不会。为什么会这样?

实验表明,没有收到通知的设备会收到仅针对单个设备的通知。他们还收到发送给所有用户的通知。这让我怀疑这与观众有关。我已经验证至少有一个未收到通知的设备具有适当的用户属性值。但是,根据用于登录应用程序的帐户,过去几天设备可能具有不同的属性值。有时它同时安装了同一个应用程序的两个版本。

我有类似的Android观众,据我所知,观众中的所有成员都会收到通知。

受众群体数以千计,所以这些信息仅基于我在我身边看到的少数设备,以及Firebase和Google Analytics。

从Firebase文档中我了解到" 一个用户在被分配到其后成为受众的永久成员"这解释了为什么两个相对的受众组合可能更大而不是用户总数,但它更难理解为什么拥有受众所需属性的人不属于它。

有关如何调试此问题或可能是什么原因的任何想法。或者甚至更好,如何解决这个问题?由于这是生产软件,我不能发送过多的通知来尝试不同的东西。

1 个答案:

答案 0 :(得分:3)

虽然我可能仍然不知道所有可能的原因,但在我们的案例中至少有两件事似乎对此有一些影响,而第三件事可能是因为如果没有正确理解的原因:

1)我们的应用程序通过单次调用setUserPropertyString来注册值列表,并且在某些情况下,字符串确实超过了24个字符的限制,这导致不设置属性并且用户/设备不包括在受众中

2)向iOS应用程序发送通知时,应选择“高”级别,否则可能会,甚至可能无法通知设备。

3)用于组合多个受众的Firebase控制台文本并不是那么清楚,尤其是“不......”文本在我看来可能更清晰。这就是他们在实践中的意思:

  • 包含所有== AND,如果用户包含在所有选定的受众群体中,则会发送通知

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

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

  • 不包含至少一个== NOR,仅当用户包含在任何选定的受众群体中时才会发送通知