亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Firebase Cloud Functions,我可以安排從外部 API 進行更新來

使用 Firebase Cloud Functions,我可以安排從外部 API 進行更新來

不負相思意 2023-08-18 14:28:10
這是我想要實現的目標的一個想法。使用云函數,有沒有辦法在不使用axios的情況下獲取API數據?有沒有辦法在預定的 pubsub 函數中獲取這些數據?const functions = require('firebase-functions');const axios = require('axios');const cors = require('cors')({ origin: true });exports.getVehicles = functions.https.onCall((req:any, res:any) => {  cors(req, res, () => {    if (req.method !== "GET") {      return res.status(401).json({        message: "Not allowed"      });    }    return axios.get('https://api.zubiecar.com/api/v2/zinc/vehicles', {              method: 'GET', // or 'PUT'              headers: {                'Content-Type': 'application/json',                "Zubie-Api-Key": "123456789"         },     })        .then((response:any) => {          console.log(response.data);          return res.status(200).json({            message: response.data.ip          })        })        .catch((err:any) => {          return res.status(500).json({            error: err          })        })      })  });  exports.updateDriverLocation = functions.pubsub.schedule('every 2 minutes').onRun(async(context:any) => {        //return array of driver objects from api    const update = await getVehicles();    //database    const DB = admin.firestore()    const REF = DB.collection("drivers")    const BATCH = DB.batch()          //update firestore with api response    update.forEach((vehicle:any) => {        BATCH.set( REF.doc(vehicle.nickname),          {vehicle},          { merge: true }        )    })    await BATCH.commit()    return null;  });本質上,我希望使我的 Firestore 數據庫與 Zubie API 保持同步,該 API 每兩分鐘更新一次車輛位置。或者,我使用 nextJS 并探索使用 useSWR 在頁面加載時完成這些更新。然而,這也帶來了自身的挑戰。
查看完整描述

1 回答

?
四季花海

TA貢獻1811條經驗 獲得超5個贊

使用云函數,有沒有辦法在不使用axios的情況下獲取API數據?

如果您想訪問某些 API,則必須自己編寫該代碼。Cloud Functions 不會為您執行此操作。Cloud Functions 只是一個托管容器,在觸發時運行您的代碼。

有沒有辦法在預定的 pubsub 函數中獲取這些數據?

當然,您可以編寫一個計劃函數來定期觸發,并且可以讓該代碼訪問 API。那應該不會比你現在遇到的困難。您可以重用幾乎所有代碼。

本質上,我希望使我的 Firestore 數據庫與 Zubie API 保持同步,該 API 每兩分鐘更新一次車輛位置。

您最多只能每 5 分鐘運行一次計劃功能。它無法配置為更頻繁地運行。


查看完整回答
反對 回復 2023-08-18
  • 1 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號