Облачная функция (Typescript) не ждет - PullRequest
0 голосов
/ 21 марта 2020

Я пытаюсь работать с обещаниями в своей облачной функции, потому что для этого нужно получить несколько документов.

Проблема, с которой я сталкиваюсь, состоит в том, что код не ждет 'для каждого л oop». Моя функция завершена, прежде чем она сможет получить все 'userdo c'.

Это мой код:

  const snapshot=  await admin.database().ref('/np/'+data.placeID).once('value');

      await admin.database().ref('/np/'+data.placeID).update({"c": snapshot.val()['c'] != null ? snapshot.val()['c'] + 1 : 1,});

     const queryForPlace = await db.collectionGroup('place')
     .where('placeID', '==', data.placeID).get()

     var tokenList: any[] = [];
     const promises: any[] = [];



     queryForPlace.docs[0].data().owners.forEach(async (user: string) => {
      const userdoc = await db
        .collection('users')
        .doc(user)
        .get();

        //ADDING THE TOKENS OF THE USER TO THE LIST
        tokenList.push.apply(tokenList, userdoc.data().fcm);

      promises.push(userdoc);
      })

     await Promise.all(promises)

    return 1;

Моя функция будет выполнять следующее:

  1. выполнить запрос
  2. записи для местоположения, чтобы получить список всех пользователей, подключенных к местоположению (в do c)
  3. , получить токены fcm всех подключенных пользователи
  4. отправьте сообщение fcm (мне все еще нужно реализовать эту часть)

Что я делаю не так?

Спасибо за вашу помощь и время!

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