之前给一个用户发送推送消息,用户一直收不到,是通过指定channel来做的。
查看后台记录,也没有报错误。


channel的值为“1c68a140e1ef341e89d38f2c1abb45c866d69060”。

今天查看_Installation表的时候,通过channel查询,找不到相关记录了。
然后让用户登录后,发现channel为空。

请问这是怎么回事?

之前没有遇到过这种问题的。

channels 字段客户端操作时机在 https://forum.leancloud.cn/t/ios/4464/91 这个帖子下面有叙述。可以检查一下有哪些逻辑会调用到 close。

另外有个地方不太理解,让用户登录后 channels 为空,这是怎么找到这个用户在 Installation 表的记录的呢?可否贴出来?用户设备登录成功之后,一定会在 channels 里填写自己的 client id 的。

应该就是这个用户了。

在Installation里面查不到channel为“1c68a140e1ef341e89d38f2c1abb45c866d69060”的记录。
之前是可以查到的。
推送消息的记录如下:

之前尝试了几次,都没有收到推送。

另外,你说的close是指的哪一个?
是这个吗?

/*!
 结束某个账户的聊天
 @param callback - 聊天关闭之后的回调
 @return None.
 */
- (void)closeWithCallback:(AVIMBooleanResultBlock)callback;

多谢。

首先确认一下您说的推送是指聊天触发的推送吧?这个用户之前在这个设备上收到过推送吗?

我们的设定里当用户调用了 closeWithCallback 之后会删除 channel 中的 id,所以你需要确认一下客户端的流程里有没有调用 closeWithCallback。

已经让同事去确认这个问题了。
多谢。