避免发件人也收到Firestore通知

时间:2019-04-11 10:38:22

标签: javascript node.js firebase google-cloud-firestore

  1. 发件人将数据发送到Firestore
  2. firestore存储数据
  3. firestore将数据广播到所有连接的客户端(包括发送方)

发送方未以任何方式接收通知吗? 要么 如果发送者收到通知,是否有任何方法可以丢弃接收到的数据?

1 个答案:

答案 0 :(得分:0)

为避免发送PUSH通知给发件人本人,您需要在已发送的数据中跟踪发件人ID。

要在云功能中将发件人ID自动设置为数据,可以从上下文中获取它:

exports.myDataUpdate = (data, context) => {

  var dataToWrite = data;
  dataToWrite['senderId'] = context.auth.uid;

  // Store dataToWrite to firestore....
};

然后在相应的云触发器(onUpdate / onCreate)中,您将找到在提示更新时设置的发件人ID。

发送通知时,仅将其发送给与用户有关的“其他”用户,发件人除外。

这意味着您自己管理通知令牌,并且拥有一个云Firestore结构,用于维护用户的通知令牌。

接收到侦听器更新时,只需将发送者ID与当前用户ID进行比较,然后根据需要删除更新。