Чтобы не отправлять PUSH-уведомление самому отправителю, необходимо отследить идентификатор отправителя внутри отправленных данных.
Чтобы автоматически установить идентификатор отправителя в данные в облачной функции, вы можете взять его из контекста:
exports.myDataUpdate = (data, context) => {
var dataToWrite = data;
dataToWrite['senderId'] = context.auth.uid;
// Store dataToWrite to firestore....
};
Затем в соответствующем облачном триггере (onUpdate / onCreate) вы должны найти идентификатор отправителя, который вы указали при запросе обновления.
При отправке уведомления отправляйте его только «другим» касающимся пользователей, исключая отправителя.
Это означает, что вы сами управляете жетонами уведомлений, и у вас есть структура облачного пожарного хранилища, в которой вы храните жетоны уведомлений пользователей.
При получении обновления прослушивателя вы просто сравниваете идентификатор отправителя с текущим идентификатором пользователя и удаляете обновление, если хотите.