Угловые функции огня вызывают, но не работают - PullRequest
0 голосов
/ 24 ноября 2018

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

exports.usedDevices = functions.https.onCall((data,context)=>{
 console.log(data);
 console.log(context);
 console.log('This started running');
 admin.firestore()
   .collection('devices/{documentId}')
   .get()
   .then(val=>{
     if(val.empty === false){
       val.forEach(function(snapshot): boolean | void{
         if(snapshot.data() === data){
           return false
         }
       })
        admin.firestore()
        .collection('devices')
        .add(
          data
        )
        .catch(er=>{
          console.log(er);
          return er;
        }) 
        return true
     }
     else{
       admin.firestore()
         .collection('devices')
         .add(
           data
         )
         .catch(er=>{
           console.log(er);
           return er;
         })
         return true
     }
   })
   .catch(er=>{
     console.log(er);
     return er
   })

})

И из моего приложения я пытаюсь вызвать эту функцию следующим образом

 const uid="This is my uid";
const call = this.aff.httpsCallable('usedDevices');
call(uid).toPromise()
.then(res=>{
  console.log(res);
})
.catch(er=>{
  console.log(er);
})

Яиспользуя простую строку «Это мой uid», чтобы проверить, достигает ли мое сообщение когда-либо бэкэнда, но все еще не читает данные из моего бэкенда. Буду признателен за любую помощь

1 Ответ

0 голосов
/ 24 ноября 2018

Попробуйте вызвать вашу функцию без "toPromise ()"

 const uid="This is my uid";
const call = this.aff.httpsCallable('usedDevices');
call(uid)
.then(res=>{
  console.log(res);
})
.catch(er=>{
  console.log(er);
})
...