it-source

Firebase 클라우드 기능을 사용하여 비구글 서버로 POST 요청 전송

criticalcode 2023. 7. 10. 22:26
반응형

Firebase 클라우드 기능을 사용하여 비구글 서버로 POST 요청 전송

파이어베이스 클라우드 기능을 사용하여 비구글 서버에 게시 요청을 보낼 수 있는지 궁금합니다(비구글 서버와 상호 작용하려면 블레이즈 계획에 있어야 합니다).

기본적으로 데이터베이스에 값이 추가될 때마다 Arduino에서 실행되는 외부 서버에 POST를 수행하고 싶습니다.

문서를 살펴보니 클라우드 기능이 HTTP 게시 요청에 응답하는 예(HTTP 클라우드 기능)를 찾았지만 외부 서버에 게시하는 예는 찾을 수 없는 것 같습니다.이것이 가능합니까?

참고: 요청 패키지가 npm 페이지 request-npm에 명시된 대로 더 이상 사용되지 않습니다.공리와 같은 다른 대안을 사용하는 것을 고려합니다.

이 작업은 모듈을 사용하여 수행할 수 있습니다.

// import the module
var request = require('request');

// make the request
request('put your external url here', function (error, response, body) {
    if (!error && response.statusCode == 200) {
        //here put what you want to do with the request
    }
})

참고: 이것은 유료 요금제에서만 작동합니다.Firebase 가격 페이지에 설명된 대로 무료 Spark 요금제를 사용하여 비구글 API를 호출할 수 없습니다.

스파크 요금제는 Google 소유 서비스에 대해서만 아웃바운드 네트워크 요청을 허용합니다.할당량 내에서 인바운드 호출 요청이 허용됩니다.Blaze 플랜에서 클라우드 기능은 영구 무료 계층을 제공합니다.처음 2,000,000번의 호출, 400,000GB-sec, 200,000개의 CPU-sec 및 5GB의 인터넷 송신 트래픽이 매월 무료로 제공됩니다.이 무료 할당을 초과한 사용에 대해서만 요금이 부과됩니다.가격은 총 호출 수와 계산 시간을 기준으로 결정됩니다.계산 시간은 기능에 대해 프로비저닝된 메모리 및 CPU 양에 따라 달라집니다.사용량 제한은 매일 및 100대 할당량을 통해 적용됩니다.자세한 내용은 클라우드 기능 가격을 참조하십시오.

패키지를 설치해야 합니다.터미널의 Firebase-Functions 디렉토리로 이동하여 다음을 입력합니다.

npm install request

OR

npm install request-promise

테스트에 다음 예제 사용: https://www.npmjs.com/package/request

functions 폴더에 모듈을 설치해야 합니다!

cd functions
npm i --save request

JSON 본문으로 글을 올리고 싶은 분들을 위해 이렇게 하면 됩니다. (얼마 전에 이것이 필요했던 것으로 알고 있습니다.)

export function postWithBodyToExternalUrl(url: string, bdy: any): Promise<ReqResponse> {

  const request = require('request');

  const options = {
    url: url,
    json: true
  };
  return new Promise(function (resolve, reject) {
    request(options, function (err, resp) {
      if (err) {
        console.log(err);
        reject({ err: err });
      }
      resolve(bdy);
    });
  });
}

axios는 또한 네트워크 호출을 처리하는 훌륭한 라이브러리 중 하나입니다.일부 기능:

  • 브라우저에서 XMLHttpRequests 만들기
  • node.js에서 http 요청 만들기
  • Promise API 지원
  • 인터셉트 요청 및 응답
  • 요청 및 응답 데이터 변환
  • 요청 취소
  • JSON 데이터의 자동 변환
  • XSRF로부터 보호하기 위한 클라이언트 측 지원
  • github의 67k 이상의 별
  • 자세한 내용은 Github 설명서를 참조하십시오.

언급URL : https://stackoverflow.com/questions/43415759/use-firebase-cloud-function-to-send-post-request-to-non-google-server

반응형