Firebase 클라우드 함수 호출 클라이언트 측 스크립트

에릭. 미디엄

저는 Reactjs에 api에서 데이터 (숫자)를 가져오고 사용자가 페이지를 열면이 숫자를 Firebase 컬렉션의 숫자와 더해 사용자가이 숫자를 볼 수있는 스크립트가 있습니다. 앱에는 많은 사용자가있을 것이고 모든 사용자는 동일한 스크립트에서 다른 숫자를 갖게 될 것입니다.

Firebase Cloud Functions로 서버에서이 클라이언트 측 스크립트를 실행하고 서버에서이 번호를 호출하고이 번호를 Firestore 컬렉션에 저장할 수 있는지 궁금합니다.

im nodejs 및 클라우드 기능의 초보자입니다. 이것이 가능한지 모르겠습니다.

API에서 숫자를 얻다

  getLatestNum = (sym) => {
    return API.getMarketBatch(sym).then((data) => {
      return data;
    });
  };

내가 시도한 클라우드 기능

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore();
exports.resetAppointmentTimes = functions.pubsub
  .schedule('30 20 * * *')
  .onRun((context) => {
    const appointmentTimesCollectionRef = db.collection('data');
    return appointmentTimesCollectionRef
      .get() 
      .then((querySnapshot) => {
        if (querySnapshot.empty) {
          return null;
        } else {
          let batch = db.batch();
          querySnapshot.forEach((doc) => {
            console.log(doc);
          });
          return batch.commit();
        }
      })
      .catch((error) => {
        console.log(error);
        return null;
      });
  });
르노 타르 넥

실제로 Cloud 함수에서 REST API를 호출 할 수 있습니다. axios 와 같이 Promise를 반환하는 Node.js 라이브러리를 사용해야합니다 .

귀하의 질문에서 작성하려는 특정 Firestore 문서에 대해 100 % 명확하지는 않지만 일괄 쓰기 내에서 수행 될 것이라고 가정합니다.

따라서 다음 줄을 따라 수행해야합니다.

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const axios = require('axios');

admin.initializeApp();
const db = admin.firestore();

exports.resetAppointmentTimes = functions.pubsub
.schedule('30 20 * * *')
.onRun((context) => {
    
    let apiData;
    return axios.get('https://yourapiuri...')
        .then(response => {
            apiData = response.data;  //For example, it depends on what the API returns
            const appointmentTimesCollectionRef = db.collection('data');
            return appointmentTimesCollectionRef.get();           
        })
        .then((querySnapshot) => {
            if (querySnapshot.empty) {
                return null;
            } else {
                let batch = db.batch();
                querySnapshot.forEach((doc) => {
                    batch.update(doc.ref, { fieldApiData: apiData});
                });
                return batch.commit();
            }
        })
        .catch((error) => {
            console.log(error);
            return null;
        });
});

주의해야 할 두 가지 사항 :

  1. 일부 필드 값에 API 결과를 추가하려면 정확한 요구 사항에 대한 자세한 정보를 제공해야합니다.
  2. 중요 : "Blaze"요금제를 사용 중이어야합니다. 사실, 무료 "Spark"계획은 " Google 소유 서비스에 대한 아웃 바운드 네트워크 요청 허용 합니다 ". https://firebase.google.com/pricing/을 참조 하세요 ( 'Cloud Functions'제목 뒤에있는 물음표 위에 마우스를 올려 놓음).

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

자바 스크립트의 클라이언트 측에서 서버 측 변수 호출

분류에서Dev

node.js의 서버 측에서 클라이언트 측 함수 호출

분류에서Dev

클라이언트 측 활성화 된 Firebase 함수 데이터를 암호화해야합니까?

분류에서Dev

클라이언트 측 자바 스크립트 함수에서 socket.emit ( 'init', 'data') 호출이 실행되지 않습니다.

분류에서Dev

클라이언트 측 자바 스크립트 함수에서 socket.emit ( 'init', 'data') 호출이 실행되지 않습니다.

분류에서Dev

비동기 함수를 호출하는 클라이언트 측 코드는 await를 사용해야합니까?

분류에서Dev

추가 스레드를 포함하는 클라이언트 측에서 webapi 호출

분류에서Dev

클라이언트 측 자바 스크립트가 내 URL을 찾지 못함

분류에서Dev

소켓 io 클라이언트 측은 sencha 함수를 호출 할 수 없습니다.

분류에서Dev

Google 웹 앱 스크립트-클라이언트 측 전역 변수

분류에서Dev

meteor에서 클라이언트에서 서버 측 함수를 호출하는 방법

분류에서Dev

firebase 클라우드 함수에서 함수 호출

분류에서Dev

클라이언트 측에서 서버 측 버튼 클릭 기능 호출

분류에서Dev

클라이언트 측 C #에서 나머지 API 호출

분류에서Dev

함수 호출 수락 직후 새 클라이언트

분류에서Dev

클라이언트 측 Firebase 클라우드 메시징 토큰을 Google 클라우드 기능으로 어떻게 가져 오나요?

분류에서Dev

클라이언트 (각도) 측에서 유성 메서드의 동기 호출

분류에서Dev

클라이언트 (각도) 측에서 유성 메서드의 동기 호출

분류에서Dev

클라이언트와 서버 연결시 함수 호출

분류에서Dev

Firebase 클라우드 함수 호출 가능 사용

분류에서Dev

Flutter에서 firebase 클라우드 함수 호출

분류에서Dev

firebase angular-ionic 앱에서 http 클라우드 함수 호출

분류에서Dev

recvfrom 함수의 클라이언트 측 문제

분류에서Dev

옥 및 클라이언트 측 자바 스크립트

분류에서Dev

Spring 클라우드 구성 클라이언트 측에서 / env를 호출하면 비밀번호 속성에 "portal.db.password = ***"가 표시됩니다.

분류에서Dev

클라이언트 측 자바 스크립트가 웹 스파이더 역할을 할 수 있습니까?

분류에서Dev

클라이언트 측 자바 스크립트에서 markojs 데이터 변수 액세스

분류에서Dev

서버 측에서 자바 스크립트 함수 호출

분류에서Dev

socket.io를 사용하여 클라이언트 측에서 서버 측 함수를 호출하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    자바 스크립트의 클라이언트 측에서 서버 측 변수 호출

  2. 2

    node.js의 서버 측에서 클라이언트 측 함수 호출

  3. 3

    클라이언트 측 활성화 된 Firebase 함수 데이터를 암호화해야합니까?

  4. 4

    클라이언트 측 자바 스크립트 함수에서 socket.emit ( 'init', 'data') 호출이 실행되지 않습니다.

  5. 5

    클라이언트 측 자바 스크립트 함수에서 socket.emit ( 'init', 'data') 호출이 실행되지 않습니다.

  6. 6

    비동기 함수를 호출하는 클라이언트 측 코드는 await를 사용해야합니까?

  7. 7

    추가 스레드를 포함하는 클라이언트 측에서 webapi 호출

  8. 8

    클라이언트 측 자바 스크립트가 내 URL을 찾지 못함

  9. 9

    소켓 io 클라이언트 측은 sencha 함수를 호출 할 수 없습니다.

  10. 10

    Google 웹 앱 스크립트-클라이언트 측 전역 변수

  11. 11

    meteor에서 클라이언트에서 서버 측 함수를 호출하는 방법

  12. 12

    firebase 클라우드 함수에서 함수 호출

  13. 13

    클라이언트 측에서 서버 측 버튼 클릭 기능 호출

  14. 14

    클라이언트 측 C #에서 나머지 API 호출

  15. 15

    함수 호출 수락 직후 새 클라이언트

  16. 16

    클라이언트 측 Firebase 클라우드 메시징 토큰을 Google 클라우드 기능으로 어떻게 가져 오나요?

  17. 17

    클라이언트 (각도) 측에서 유성 메서드의 동기 호출

  18. 18

    클라이언트 (각도) 측에서 유성 메서드의 동기 호출

  19. 19

    클라이언트와 서버 연결시 함수 호출

  20. 20

    Firebase 클라우드 함수 호출 가능 사용

  21. 21

    Flutter에서 firebase 클라우드 함수 호출

  22. 22

    firebase angular-ionic 앱에서 http 클라우드 함수 호출

  23. 23

    recvfrom 함수의 클라이언트 측 문제

  24. 24

    옥 및 클라이언트 측 자바 스크립트

  25. 25

    Spring 클라우드 구성 클라이언트 측에서 / env를 호출하면 비밀번호 속성에 "portal.db.password = ***"가 표시됩니다.

  26. 26

    클라이언트 측 자바 스크립트가 웹 스파이더 역할을 할 수 있습니까?

  27. 27

    클라이언트 측 자바 스크립트에서 markojs 데이터 변수 액세스

  28. 28

    서버 측에서 자바 스크립트 함수 호출

  29. 29

    socket.io를 사용하여 클라이언트 측에서 서버 측 함수를 호출하는 방법은 무엇입니까?

뜨겁다태그

보관