проверьте, возвращает ли значение post после promises.push - PullRequest
0 голосов
/ 25 мая 2020

У меня есть это:

var post = firebase.database().ref('/posts/' + value).orderByKey();

promises.push(
  post.once('value').then((snapshot2) => Object.assign(snapshot2.val(), {
    key: snapshot2.key,
    likeOrNot: likeOrNot
  })));

если сообщения / значение, если недопустимое значение в сообщениях, я получаю эту ошибку: Uncaught (in promise) TypeError: Cannot convert undefined or null to object

Я хотел бы проверить до pu sh if post! == null или что-то в этом роде, чтобы избежать этой ошибки.

Есть идеи, что мне нужно изменить?

1 Ответ

1 голос
/ 25 мая 2020

Я предлагаю использовать метод exists() из DataSnapshot и сделать следующее:

var post = firebase.database().ref('/posts/' + value).orderByKey();
promises.push(post.once('value'));

// ...

return Promise.all(promises)
.then(dataSnapshots => {

  const objectsArray = [];
  dataSnapshots.forEach(snap => 
     if (snap.exists()) {
         objectsArray.push(
           Object.assign(snap.val(), {key: snap.key, likeOrNot: likeOrNot})
         )
     }

  // ...
  // return ... 
})

Для точной настройки по мере необходимости !! (вам может не понадобиться массив objectsArray ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...