2

Je souhaite recevoir une notification chaque fois qu'un nouvel enfant a été créé dans la base de données Firebase. C'est ce que j'ai eu jusqu'ici. Avec cette ligne de code, vous recevez une notification lorsqu'un nouvel enfant a été créé. Mais le problème est que la notification toujours avec le titre: "Titre", Corps: "Come check it" est. Maintenant, ma question est comment je peux créer une notification avec la valeur Ville et le temps (voir la structure ci-dessous)Notification Firebase Push lorsqu'un nouvel enfant est ajouté à la base de données

const functions = require('firebase-functions'); 
const admin = require('firebase-admin'); 
admin.initializeApp(functions.config().firebase); 

exports.sendPushNotification = functions.database.ref('/Rollerbanken/{Id}').onCreate(event => { 

    const payload = { 
    notification: { 
    title: 'Title', 
    body: 'come check it', 
    badge: '0', 
    sound: 'default', 
    } 
}; 
    return admin.database().ref('fcmToken').once('value').then(allToken => { 
    if(allToken.val()) { 
    const token = Object.keys(allToken.val()); 
    return admin.messaging().sendToDevice(token, payload).then(response => { 
      }); 
     }; 
    }); 
}); 

Ma structure:

{ 
    "Rollerbanken" : { 
    "-KuKDXL2pY9MMtw551ZI" : { 
     "Extrainformatie" : "", 
     "Latitude" : "51.9145932124898", 
     "Longitude" : "5.86974696138047", 
     "Staater" : "Staat er", 
     "Staaternietmeer" : "", 
     "City" : "Overbetuwe", 
     "Time" : "15 : 43", 
     "TijdControle" : "15 : 43", 
     "TijdControleniet" : "", 
     "TypeControle" : "Rollerbank" 
    } 
    } 

J'espère que vous pouvez me aider!

+0

Vous pouvez rechercher dans Cloud Functions for Firebase et écrire un déclencheur de base de données qui utilise le SDK administrateur pour envoyer une notification lorsqu'un emplacement dans la base de données change. https://firebase.google.com/docs/functions/ –

Répondre

0

Fondamentalement, vous devez modifier votre objet de charge utile pour chaque notification que vous souhaitez envoyer. Les bonnes nouvelles sont depuis son juste un objet que vous pouvez y accéder facilement, donc tout ce que vous avez à faire est payload.name = YOURDESIREDVALUEHERE

Donc ce que vous devez faire est de prendre votre nouvelle clé, (jeton) et l'utiliser pour accéder à votre objet. À moins que je me trompe Object.keys génère un tableau, de sorte que votre clé d'accès doit être jeton [0], puis utilisez que pour accéder à votre valeur, comme celui-ci allToken.val()[token[0]]["City"]

Votre code ressemblera à ceci:

const functions = require('firebase-functions'); 
const admin = require('firebase-admin'); 
admin.initializeApp(functions.config().firebase); 
exports.sendPushNotification = functions.database.ref('/Rollerbanken/{Id}').onCreate(event => { 

    const payload = { 
    notification: { 
    title: 'Title', 
    body: 'come check it', 
    badge: '0', 
    sound: 'default', 
    } 
}; 
    return admin.database().ref('fcmToken').once('value').then(allToken => { 
    if(allToken.val()) { 
    const token = Object.keys(allToken.val()); 
    payload.notification.title = allToken.val()[token[0]]["City"] + allToken.val()[token[0]]["Time"] //change here 
    return admin.messaging().sendToDevice(token, payload).then(response => { 
      }); 
     }; 
    }); 
}); 
+0

Il n'envoie plus de notifications. –

+0

sa cause j'ai foiré, je vais éditer – TheCog

+0

Il ne fonctionne toujours pas. –