Retrieve fcmToken of current device FCM node.js
I want to check if the fcmToken of the current device is the same as the fcmToken of the user who is sending the message, and if so, not send the notification. Is it possible to retrieve the fcmToken in the node.js file, and if not, are there any other possible ways I can prevent the user from receiving notifications about his own message.
Below I posted the node.js code: Users are basically just receiving notifications based on topics (convoIds) that they are subscribed to.
exports.observeMessages = functions.database.ref('/conversation_messages/{topicId}/{messageId}')
.onCreate((snapshot, context) => {
var topic = context.params.topicId;
var messageId = context.params.messageId;
var message = snapshot.val();
return admin.database().ref('/conversations/' + topic).once('value', snapshot => {
var conversation = snapshot.val(); // This gives us the conversation name
return admin.database().ref('/users/' + message.senderId).once('value', snapshot => {
var user = snapshot.val();
var notification = {
notification: {
title: conversation.conversationName,
body: user.username + ': ' + message.text
},
apns: {
payload: {
aps: {
sound: 'default'
}
}
},
data: {
conversationId: topic
},
topic: topic
};
admin.messaging().send(notification)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:' + notification + 'to topic: ' + topic, response);
return response
})
.catch((error) => {
console.log('Error sending message:', error);
throw new Error("Error sending message");
});
})
})
})
javascript node.js firebase firebase-cloud-messaging
add a comment |
I want to check if the fcmToken of the current device is the same as the fcmToken of the user who is sending the message, and if so, not send the notification. Is it possible to retrieve the fcmToken in the node.js file, and if not, are there any other possible ways I can prevent the user from receiving notifications about his own message.
Below I posted the node.js code: Users are basically just receiving notifications based on topics (convoIds) that they are subscribed to.
exports.observeMessages = functions.database.ref('/conversation_messages/{topicId}/{messageId}')
.onCreate((snapshot, context) => {
var topic = context.params.topicId;
var messageId = context.params.messageId;
var message = snapshot.val();
return admin.database().ref('/conversations/' + topic).once('value', snapshot => {
var conversation = snapshot.val(); // This gives us the conversation name
return admin.database().ref('/users/' + message.senderId).once('value', snapshot => {
var user = snapshot.val();
var notification = {
notification: {
title: conversation.conversationName,
body: user.username + ': ' + message.text
},
apns: {
payload: {
aps: {
sound: 'default'
}
}
},
data: {
conversationId: topic
},
topic: topic
};
admin.messaging().send(notification)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:' + notification + 'to topic: ' + topic, response);
return response
})
.catch((error) => {
console.log('Error sending message:', error);
throw new Error("Error sending message");
});
})
})
})
javascript node.js firebase firebase-cloud-messaging
add a comment |
I want to check if the fcmToken of the current device is the same as the fcmToken of the user who is sending the message, and if so, not send the notification. Is it possible to retrieve the fcmToken in the node.js file, and if not, are there any other possible ways I can prevent the user from receiving notifications about his own message.
Below I posted the node.js code: Users are basically just receiving notifications based on topics (convoIds) that they are subscribed to.
exports.observeMessages = functions.database.ref('/conversation_messages/{topicId}/{messageId}')
.onCreate((snapshot, context) => {
var topic = context.params.topicId;
var messageId = context.params.messageId;
var message = snapshot.val();
return admin.database().ref('/conversations/' + topic).once('value', snapshot => {
var conversation = snapshot.val(); // This gives us the conversation name
return admin.database().ref('/users/' + message.senderId).once('value', snapshot => {
var user = snapshot.val();
var notification = {
notification: {
title: conversation.conversationName,
body: user.username + ': ' + message.text
},
apns: {
payload: {
aps: {
sound: 'default'
}
}
},
data: {
conversationId: topic
},
topic: topic
};
admin.messaging().send(notification)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:' + notification + 'to topic: ' + topic, response);
return response
})
.catch((error) => {
console.log('Error sending message:', error);
throw new Error("Error sending message");
});
})
})
})
javascript node.js firebase firebase-cloud-messaging
I want to check if the fcmToken of the current device is the same as the fcmToken of the user who is sending the message, and if so, not send the notification. Is it possible to retrieve the fcmToken in the node.js file, and if not, are there any other possible ways I can prevent the user from receiving notifications about his own message.
Below I posted the node.js code: Users are basically just receiving notifications based on topics (convoIds) that they are subscribed to.
exports.observeMessages = functions.database.ref('/conversation_messages/{topicId}/{messageId}')
.onCreate((snapshot, context) => {
var topic = context.params.topicId;
var messageId = context.params.messageId;
var message = snapshot.val();
return admin.database().ref('/conversations/' + topic).once('value', snapshot => {
var conversation = snapshot.val(); // This gives us the conversation name
return admin.database().ref('/users/' + message.senderId).once('value', snapshot => {
var user = snapshot.val();
var notification = {
notification: {
title: conversation.conversationName,
body: user.username + ': ' + message.text
},
apns: {
payload: {
aps: {
sound: 'default'
}
}
},
data: {
conversationId: topic
},
topic: topic
};
admin.messaging().send(notification)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:' + notification + 'to topic: ' + topic, response);
return response
})
.catch((error) => {
console.log('Error sending message:', error);
throw new Error("Error sending message");
});
})
})
})
javascript node.js firebase firebase-cloud-messaging
javascript node.js firebase firebase-cloud-messaging
asked Nov 13 at 0:46
Eric
4417
4417
add a comment |
add a comment |
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53272181%2fretrieve-fcmtoken-of-current-device-fcm-node-js%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53272181%2fretrieve-fcmtoken-of-current-device-fcm-node-js%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown