Моя функция Firebase Cloud не работает с Object.value, это не ошибка функции? - PullRequest
0 голосов
/ 12 декабря 2018

Почему я получаю следующую ошибку, когда пытаюсь получить значения своих дочерних узлов Firebase под регистрационными токенами:

Структура базы данных:

"fcmtokens" : {
    "dBQdpR7l1WT2utKVxdX2" : {
      "registrationTokens" : {
        "O": ""c4PSCAUAg5s:Yw95DyVxwElE88LwX7" 
      }
    }
  }

Вывод на консоль:

Ошибка типа: Object.values ​​не является функцией

Часть моей развернутой функции в Firebase Cloud Функции:

return admin.database().ref('/fcmtokens/' + toId + '/registrationTokens').once('value').then((userTok) => {

    const registrationTokens = Object.values(userTok.val());

    console.log('registrationTokens', registrationTokens

1 Ответ

0 голосов
/ 12 декабря 2018

Object.values ​​() - это новая функция в ECMAScript 2017.

Облачные функции по умолчанию запускают узел 6, который поддерживает только ECMAScript 2015 (ES6).Таким образом, если вы выполняете этот код во время выполнения облачных функций по умолчанию, вы получите эту ошибку (поскольку функция не существует).

узел 8 поддерживает ECMAScript 2017, а облачные функции позволяют развертыватьна узел 8. Итак, если вам действительно нужно использовать Object.values ​​(), вам следует развернуть на узле 8 вместо .Или вы можете использовать эквивалент lodash .

...