不知道大家有沒有注意過:Cloud Functions 除了出現在 Google Clould 裡頭,在 Firebase 也看得到它的身影,一樣的服務為何要放在兩個地方?還有,它們倆真的一樣嗎?
當然,第一個問題只有官方知道,我也只是猜測而已:在 Firebase 剛推出時,強調開發者專注寫程式就好,剩下的 Firebase 會幫我們搞定。Google Clould 服務五花八門,很多服務不是單純寫程式可以理解的,不少服務還要具備伺服器管理經驗才有機會接觸,對於純粹寫程式的開發者而言就沒這麼友善。而 Cloud Functions 也是專注在寫程式的服務,跟 Firebase 的初衷如出一轍,將 Cloud Functions 放在 Firebase 當然沒問題。
至於第二個問題,它們一樣嗎——答案是否定的。我是先從 Google Cloud Functions 開始使用,最近的 Side Project 才用了 Cloud Functions for Firebase,一開始我以為兩者相同,但沒多久我就意識到:差多了!
語言
Google Cloud Functions 支援語言:Node.js, Python, Go, Java, .NET, Ruby, or PHP
Cloud Functions for Firebase 只支援 Node.js
我在創了 Firebase 專案後,本來要用 Go 寫 API,但完全找不到選項可修改,最後只好妥協用 Node.js 寫。
Firebase 驗證
Google Cloud Functions 需要設定憑證檔案才有辦法存取 Firebase。
Cloud Functions for Firebase 則是不用設定,可以直接使用需要驗證的函式。
規格調整
Google Cloud Functions 設定可以透過網頁調整。
Cloud Functions for Firebase 需要透過 command line 或是寫在程式之中。
例如:新增 / 刪除 / region / memory size / count of instance … etc.
Ref: https://firebase.google.com/docs/functions/manage-functions
Client SDK
只有 Cloud Functions for Firebase 支援,提供整好的 protocol 讓 client 使用,驗證資訊直接包在裡面,還滿方便的。
Ref: https://firebase.google.com/docs/functions/callable
結論
對語言有要求請直接用 Google Cloud Functions,這點無庸置疑;若用了 Firebase 裡頭的其他服務,且不排斥 Node.js,Firebase 全家餐吃好吃滿也無不可。整體來看我會覺得 Google Cloud Functions 比較有彈性,畢竟設定完憑證還是可以存取 Firebase,而 Client SDK 也沒有方便到非用不可。
留言列表