FİRESTORE FUNCTİONS BİLDİRİM

Rapor et
Soru

Bu soru rapor edilmelidir hissediyorum neden kısaca açıklayınız.

Rapor et
İptal

Ben bir uygulama üzerinde çalışıyorum. Firebase functions ksımını kullanıyorum. Elimde biryerden temin ettiğim index.js dosyası var ve sıkıntısız çalıştırıyorum. Tek sorunum karşıya nekadar mesaj yazarsam o kadar bildirim gidiyor. Benim isteğim sadece 1 tane bildirim penceresi olsun. Bunu nasıl yapabiliriz? Şimdiden teşekkürler…

index.js

___________________________________________

const functions = require(‘firebase-functions’);

const admin = require(‘firebase-admin’);
admin.initializeApp();

exports.notifyNewMessage = functions.firestore
.document(‘chatChannels/{channel}/messages/{message}’)
.onCreate((docSnapshot, context) => {
const message = docSnapshot.data();
const recipientId = message[‘recipientId’];
const senderName = message[‘senderName’];

return admin.firestore().doc(‘users/’ + recipientId).get().then(userDoc => {
const registrationTokens = userDoc.get(‘registrationTokens’)

const notificationBody = message[‘text’]
const payload = {
notification: {
title: senderName + “ mesaj gönderdi”,
body: notificationBody,
sound: “default”,
clickAction: “ChatActivity”
},
data: {
USER_NAME: senderName,
USER_ID: message[‘senderId’]
}
}

return admin.messaging().sendToDevice(registrationTokens, payload).then( response => {
const stillRegisteredTokens = registrationTokens

response.results.forEach((result, index) => {
const error = result.error
if (error) {
const failedRegistrationToken = registrationTokens[index]
console.error(‘blah’, failedRegistrationToken, error)
if (error.code === ‘messaging/invalid-registration-token’
|| error.code === ‘messaging/registration-token-not-registered’) {
const failedIndex = stillRegisteredTokens.indexOf(failedRegistrationToken)
if (failedIndex > -1) {
stillRegisteredTokens.splice(failedIndex, 1)
}
}
}
})

return admin.firestore().doc(“users/” + recipientId).update({
registrationTokens: stillRegisteredTokens
})
})
})
})

0
JavaScript 1 sene 0 Cevap 173 görüntüleme Intern 0

Yazar HakkındaIntern

Cevap bırak

Gözat

KOD PAYLAŞIRKEN DİKKAT!!!!

HTML kod paylaşmak için

<pre class="html">HTML KOD</pre>
XML kod paylaşmak için
<pre class="xml">XML KOD</pre>
Diğer dillerde(php,java,android,javasvript,c# vs..) kod paylaşmak için
<pre>KOD</pre>
tagları arasında paylaşmayı unutmayın.