Облачная функция обмена сообщениями Firebase возвращает неопределенное значение - PullRequest
0 голосов
/ 30 октября 2018

Я просто отправляю уведомление, когда кто-то новый последовал за вами, но когда я пытаюсь вернуть имя пользователя пользователя в уведомлении, он просто говорит «undefined решил следовать за вами» вместо имени пользователя.

 exports.observeFollowing = functions.database.ref('/following/{uid}/{followingId}').onCreate((snapshot,context) => {
 var uid = context.params.uid;
 var followingId = context.params.followingId;

 console.log('User: ' + uid + 'is following: ' + followingId);

 return admin.database().ref('/users/' + followingId).once('value', snapshot => {

 var userWeAreFollowing = snapshot.val();

 return admin.database().ref('/users/' + uid).once('value', snapshot => {

 var userDoingTheFollowing = snapshot.val();

 var payload = {
   notification: {
     title: "Someone new has followed you",
     body:  userWeAreFollowing.username + " has decided to follow you...",
     sound: 'default'
   }
 }

 admin.messaging().sendToDevice(userWeAreFollowing.fcmToken, payload)
       .then((response) => {
         console.log('Successfully sent message:', response);
         return response
       })
       .catch((error) => {
         console.log('Error sending message:', error);
        });
  })
})

Firebase database

1 Ответ

0 голосов
/ 30 октября 2018

вместо

body: userWeAreFollowing.username + " has decided to follow you...",

не должно быть следующим именем пользователя

body: userDoingTheFollowing.usernames + " has decided to follow you...",

и обратите внимание, что в вашей базе данных в реальном времени вы сохранили имя пользователя как usernameS, что может быть проблемой

...