2017-12-13 11 views
0

나는 중포 기지 기능 요청에서 JSON을 얻으려고, 여기에 내가 노력하고있어입니다 :firebase 함수에서 리턴 값을 얻으시겠습니까? 내가 크롬에서 해당 URL로 이동하면 불행하게도이없는 결과 타임 아웃을 산출 <pre><code>export const listener = functions.https.onRequest(async (req, res) => { return {foo:"bar"} }) </code></pre> <p></p>, 나는 또한 시도 :

function getDude(){ 
    return {dude:"dude"}; 
} 

export const listener = functions.https.onRequest(async (req, res) => { 
    return Promise.all([getDude()]); 
}) 

이전과 같은 결과.

답변

1

HTTPS 유형 함수는 약속을 반환하지 않으므로 비동기로 선언하면 안됩니다. 그러나 다른 모든 유형의 Cloud Functions 을 수행하면 수행하는 비동기 작업에 대한 약속을 반환해야합니다.

HTTPS 유형 함수는 함수를 종료하기 위해 결과를 클라이언트에 반환해야합니다. 이것은 res.send()을 사용하는 것만 큼 간단하거나 documentation에 설명 된 방법을 사용하는 것만 큼 간단합니다. 비동기 작업이 끝나기를 기다리는 함수에서 약속을 사용해서는 안된다는 말은 아닙니다. 함수에서 반환하지 않아도됩니다.

+0

아, 그렇다면 내가 원하는 것을 성취하려면 어떻게해야합니까? – tweetypi

+0

필자의 대답에 언급 된대로'res.send()'를 사용하여 응답을 클라이언트에 보냅니다. 샘플 코드가 많이 있습니다. https://github.com/firebase/functions-samples/ –