我是Node.js和Firebase雲端函數中的新成員,我將盡力針對我的問題。Cloud Functions Http Request返回緩存的Firebase數據庫
我有一個火力點,數據庫對象,包括「得分」字段。我希望基於此檢索數據,並且可以在客戶端輕鬆完成。
問題是,如果數據庫變得很大,我擔心它要花費太長時間才能返回和/或將消耗大量資源。這就是爲什麼我正在考慮使用雲端函數來存儲緩存時使用的一個http服務,該緩存包含任何對象的分數隨着偵聽器而改變時將自行更新的前N個對象。
然後,客戶端只需調用諸如https://myexampleprojectroute/givemethetoplevels的東西來接收具有前N個級別的Json。
這是否合理?如果是這樣,我該如何解決這個問題?我需要哪些結構來使用此緩存,以及如何通過http以json格式返回它們?
目前我會繼續做客戶端,但我真的很喜歡這兩個表現和學習的目的。
在此先感謝。
編輯:
在我並沒有實現最優化的結束。之所以首先是因爲firebase數據庫不包含「孩子數」,所以我沒有找到用我的新手javascript知識來實現這一點的方法。其次,也是最重要的是,我敢肯定它不會擴展到數百萬,最多隻有10K條目,並且firebase具有排序優化的規則。欲瞭解更多信息,請查看this link.
而且,我會發佈一個簡單的代碼片段使用雲計算的功能,以防有人正在尋找它通過HTTP請求來檢索從數據庫中的數據。希望這可以幫助!
// Simple Test function to retrieve a json object from the DB
// Warning: No security methods are being used such authentication, request methods, etc
exports.request_all_levels = functions.https.onRequest((req, res) => {
const ref = admin.database().ref('CustomLevels');
ref.once('value').then(function(snapshot) {
res.status(200).send(JSON.stringify(snapshot.val()));
});
});
謝謝!所以,而不是使用替代js結構,我只是在數據庫的不同路徑中複製頂部的X.我會試試這個!一旦完成,我會更新帖子! – Carles