1

我想從後端雲函數內部讀取整個火力地堡數據庫到一個變量,如下所示:的火力地堡雲功能:讀取整個數據庫到內存

exports.transformUserData = functions.https.onRequest((request, response) => { 

    admin.database().ref('/').on('value', function (snapshot) { 

     var dbData = snapshot.val(); 
     ... 

    }); 
    ... 
}); 
  1. 這安全嗎? (從內存或美元成本的角度來看,速度在這種情況下不是問題)。

  2. 我希望一旦我的數據庫來存儲外的一個錯誤,由於生長的功能會崩潰。如果是這種情況,我們可以預計什麼樣的內存限制會崩潰? (例如,10MB)。

非常感謝您的任何建議!

回答

2

這在技術上是完全可以從你的火力地堡數據庫的所有數據讀入內存中。

只要宿主進程提供足夠的內存,這將工作。如果沒有足夠的內存,腳本將崩潰。

這是不可能什麼的內存量,這將崩潰的說法,因爲這取決於JSON數據大小,數據格式(許多小的節點將使用比一個大的節點更多的內存),以及其他因素。

+0

好極了!謝謝你的超級快速反應Frank!我還注意到,在您編輯我的問題時,您添加了一個鏈接,它解釋了256MB是最大DB數據提取大小。這遠遠超過我的需要!假設我只聲明這個單一的「dbData」變量,有一個用戶,並且所有其他都相同並且簡化:您還知道變量在Firebase雲服務中可以實現的最大內存大小是多少? –

+2

Cloud Functions運行在相當標準的Node.js中。最大變量的大小將取決於自身的Node.js和[您的雲功能環境的內存大小(https://stackoverflow.com/questions/44500155/how-is-memory-allocated-to-a-google-cloud -功能)。 –

+1

完美!謝謝!該鏈接非常有用。本來我已經進入這個環節,但那裏什麼都沒有,但是點擊我選擇了我的組織並找到了這個項目。該鏈接(https://console.cloud.google.com/functions/list)顯示該功能默認分配了256MB的內存(您可以將其增加到2GB)。我另外運行測試,並且能夠分配256MB數量級的變量(但從未超過256MB)。我所有的問題都解決了。再次感謝您提供有用的信息! –

相關問題