0

클라우드 기능을 사용하여 특정 사용자에 대한 푸시 알림을 보내려고합니다. 이 코드는 등록 된 모든 사용자에게 알림을 보내고,Cloud 함수에서 동적 참조를 전달하는 방법은 무엇입니까?

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

exports.sendPushNotification = functions.database.ref('/Users/{id}').onWrite(event => { 
const payload = { 
    notification: { 
     title: 'Test message', 
     body: 'Hope you are fine', 
     badge: '1', 
     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 => { 

     }); 
    } 
}); 
}); 

그러나이 동적으로 수행하는 방법, 즉, 나는 특정 사용자에 대한 푸시 알림을 보낼 :

여기 내 코드입니다. 이

const payload = { 
    notification: { 
     title: 'Test message', 
     body: 'Hope you are fine', 
     badge: '1', 
     sound: 'default', 
    } 
}; 

사람이 나를 안내 : 그래서, 동적 (dB 참조)에 정적 ID (dB 참조)를 변경하고 또한 방법이 코드 라인에 통지 다른 콘텐츠를 전달하는 데 도움이?

답변

0

동적으로 달성했습니다. 누군가가 도움이되기를 바랍니다. 알림 내용을 변경하는 경우 응용 프로그램 측에서 업데이트하면

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

exports.sendPushNotification = functions.database.ref('/Users/{id}').onWrite(event => { 

var eventSnapshot = event.data; 
    var particularUser = eventSnapshot.child('City'); 
    if (particularUser.changed()) { 
     const payload = { 
       notification: { 
        title: 'Test message', 
        body: 'Hope you are fine', 
        badge: '1', 
        sound: 'default', 
       } 
      }; 

      var getToken = eventSnapshot.child('fcmToken'); 

        const token = Object.keys(getToken.val()); 
        return admin.messaging().sendToDevice(token, payload).then(response => { 

        }); 

    } 


}); 

, 당신은 데이터베이스에서 그것을 얻을 수 있습니다

여기 내 코드입니다.