Firebase Functions Проблема с TypeScript при управлении DataSnapshot. «Свойство не существует по типу 'never'» - PullRequest
0 голосов
/ 07 мая 2020

Я создаю облачную функцию с помощью Firebase для поиска «залов ожидания», так как я использую «limitToLast», чтобы получить только последний дочерний элемент в узле «rooms». Мне нужно l oop через снимок детей, чтобы получить снимок данных для комнаты, которую я хочу (я не знаю, есть ли лучший способ сделать это, но раньше он работал нормально), дело в том, что мне нужно проверить некоторые вещи после назначения "waitRoomData" внутри «forEach», но я получаю сообщение: «Свойство не существует для типа 'never'». Я никогда раньше не работал с машинописным текстом и понятия не имею, как это решить.

  let waitingRoomData;

  //Join waiting room.
  waitingRoomsSnapshot.forEach(waitingRoom => {
    waitingRoomData = waitingRoom; 
  });

  if (waitingRoomData === undefined) {
    return undefined;
  } else {
    if (waitingRoomData.child('hostId').val() == context.auth?.uid) {
      //Uses an existing room where the current user is the host.
      //Update creation time.
      return waitingRoomData.child('creationTime').ref.set(admin.database.ServerValue.TIMESTAMP).then(() => {
        return waitingRoomData.val();
      }).catch(error => {
        console.log(error);
        return error;
      });
    } else {
      return waitingRoomData.val();
    }
  }

1 Ответ

0 голосов
/ 12 мая 2020

Возможно, вы не объявляете тип для waitRoomData. [1]

Попробуйте объявить его, например:

let waitingRoomData:any[] = [];

В противном случае, возможно, один из ваших операторов else никогда не будет использоваться, поскольку 'if' всегда будет истинным, и компилятор это обнаруживает.

[1] Typescript: Свойство не существует для типа 'never', но функция работает?

[2] 'Свойство не существует для типа' never '

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