Как интерполировать переменную в Firebase снимок? - PullRequest
0 голосов
/ 15 апреля 2019

Я использую функции Firebase для отправки пользователям уведомления. Я могу использовать пользовательскую интерполяцию строки так:

      const original = change.after.val();
      const lover = context.auth.uid;

      const recipient_username = original.username;
      const topic = `${recipient_username}_notifications`;

Но теперь мне нужно вызвать базу данных, чтобы получить имя пользователя из user_id, и использовать имя пользователя, чтобы получить значение loves из «оригинального» снимка, но это не работает:

return db.ref('/users/' + lover).once('value', (snapshot) =>  {

          var username = snapshot.val().username;
          var love = original.loves.username // I need this to use the variable username, but it is just saying "username"

          console.log("lover username")
          console.log(username)
          console.log("loves")
          console.log(loves)

          const payload = {
            notification:{
              title: "You've got Love!",
              body: `${username} sent you Love! Refresh your inbox to recieve it, and why not send some back!`
            }
          };

Как я могу изменить var love = original.loves.username на что-то вроде: var love = original.loves.${username}?

База данных выглядит так:

   users/
         username: usernamehere
         love/
               otherusername: 10 // the amount of love they sent.

1 Ответ

2 голосов
/ 15 апреля 2019

Вы вызвали .val() на original, превратив его в объект Javascript.

Обход путей в объектах Javascript может быть выполнен с помощью вспомогательных функций .loves или с помощью поиска строк. Попробуйте следующее

var username = snapshot.val().username;
var love = original.loves[username];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...