ความแตกต่างระหว่าง Cloud Functions และ Firebase Functions คืออะไร


89

Cloud FunctionsและFirebase Functions (หรือ "Cloud Functions for Firebase")มีลักษณะเหมือนกัน โปรดอธิบายกรณีการใช้งานของแต่ละ

ทั้งสองใช้ฟังก์ชัน HTTP

ในฟังก์ชันระบบคลาวด์ :

exports.helloHttp = function helloHttp (req, res) {
  res.send(`Hello ${req.body.name || 'World'}!`);
};

และในฟังก์ชั่น Firebase :

exports.helloWorld = functions.https.onRequest((request, response) => {
  response.send("Hello from Firebase!");
});

อะไรคือความแตกต่างระหว่างสิ่งเหล่านี้?


1
คำศัพท์สำหรับ Firebase คือCloud Functions สำหรับ Firebaseซึ่งเป็นเพียง Cloud Functions ที่รวมเข้ากับ Firebase Services
อัล

2
จึงไม่มีความแตกต่างระหว่างทั้งสอง?
Muhammad chhota

ต้องการเพิ่มประเด็นง่ายๆที่ไม่ตรงกับคำถามของคุณ คุณสามารถเขียนโค้ดในภาษาต่างๆ (NodeJS, Python, Hear Go กำลังจะมา) โดยใช้ Google Cloud Functions
viggy28

คำตอบ:


161

ไม่มีผลิตภัณฑ์ที่เรียกว่า Firebase Functions

มีสามสิ่งที่แยกจากกัน:

  1. Google Cloud Functionsซึ่งช่วยให้คุณสามารถเรียกใช้ข้อมูลโค้ดในโครงสร้างพื้นฐานของ Google เพื่อตอบสนองต่อเหตุการณ์ต่างๆ
  2. Cloud Functions สำหรับ Firebaseซึ่งทริกเกอร์ Google Cloud Functions ตามเหตุการณ์ใน Firebase (เช่นฐานข้อมูลหรือการเขียนไฟล์การสร้างผู้ใช้ ฯลฯ )
  3. Firebase SDK for Cloud Functionsซึ่งรวมถึงไลบรารี (เรียกอย่างสับสนfirebase-functions) ที่คุณใช้ในรหัสฟังก์ชันเพื่อเข้าถึงข้อมูล Firebase (เช่นภาพรวมของข้อมูลที่เขียนไปยังฐานข้อมูล)

ดังนั้น Firebase จึงจัดเตรียม Wrapper (ค่อนข้างบาง) รอบ ๆ Google Cloud Functions เพื่อให้ผลิตภัณฑ์หลังใช้งานง่ายขึ้นและรวมเข้ากับ Firebase ในแง่นี้จะคล้ายกับวิธีที่ Firebase รวม Google Cloud Storage เข้ากับ "Cloud Storage for Firebase" (เดิมเรียกว่า Firebase Storage)

หากคุณกำลังใช้แพลตฟอร์ม Google Cloud โดยไม่ต้อง Firebase แล้วคุณควรใช้ธรรมดาฟังก์ชั่น Google Cloud หากคุณอยู่ใน Firebase หรือถ้าคุณเป็นนักพัฒนามือถือที่สนใจในฟังก์ชั่นคลาวด์ที่คุณควรใช้ฟังก์ชั่นคลาวด์สำหรับ Firebase


1
FYI: เครื่องมือ Firebase ช่วยให้นักพัฒนาสามารถเข้าถึงกิจกรรม Google Cloud ทั้งหมด SDK "firebase-functions" และ Firebase CLI ทำงานร่วมกันเพื่อให้นักพัฒนาจัดการชุดฟังก์ชันด้วยคำสั่งปรับใช้แบบง่าย - เริ่มต้นใช้งานได้ง่ายในขณะที่คุณยังสามารถเข้าถึง Google Cloud Platform ได้อย่างเต็มที่เมื่อคุณต้องการ
Ultrasaurus

ราคาไม่แตกต่างกันอย่างไร? การใช้ฟังก์ชัน Google Cloud Platform นอกบริบท Firebase ทำให้ฉันได้รับข้อมูลขาออก 5 GB ในแต่ละเดือนฟรี การเรียกใช้ฟังก์ชัน GCP จากภายในบริบท Firebase ห้ามไม่ให้เข้าถึงบริการที่ไม่ใช่ของ Google ในระดับฟรี อนุญาตให้เข้าถึงเครือข่ายภายนอกได้ที่ระดับ 25 ดอลลาร์หรือที่ระดับ Blaze (จ่ายตามที่คุณใช้งาน) แต่แม้ในระดับ Blaze คุณจะถูกเรียกเก็บเงิน 40 เซนต์ต่อหนึ่งล้านการเรียกใช้ แต่ผ่าน GCP การเรียก 2 ล้านครั้งแรกของคุณนั้นฟรี แล้วเท่ากับ. 40 เซ็นต์ต่อหนึ่งล้าน
mancini0

พวกเขาทำงานบนโครงสร้างพื้นฐานเดียวกันดังนั้นจึงไม่มีความแตกต่างในการดำเนินการใด ๆ ในแผน Blaze มีโควต้าฟรีเหมือนกัน จากหน้าการกำหนดราคา : "ในแผน Blaze Cloud Functions จะให้บริการระดับฟรีตลอดเวลาการเรียกใช้ 2,000,000 ครั้งแรก, 400,000 GB ต่อวินาที, 200,000 CPU-วินาทีและการรับส่งข้อมูลทางอินเทอร์เน็ต 5 GB ฟรีในแต่ละเดือน เรียกเก็บเฉพาะเมื่อใช้งานเกินการจัดสรรฟรีนี้ "
Frank van Puffelen

Cloud Functions สำหรับ Firebase ไม่รองรับฟังก์ชันที่จะเขียนด้วย python ใช่ไหม ตามประโยค "คุณจะต้องมีสภาพแวดล้อม Node.js เพื่อเขียนฟังก์ชัน (... )"
JohnAndrews


5

แพลตฟอร์มคลาวด์ของ Google GCP มีบทความที่อยู่ในคำถามนี้ฟังก์ชั่น Google Cloud และ Firebase

Google Cloud Functions และ Firebase

Google Cloud Functions เป็นโซลูชันการประมวลผลแบบไร้เซิร์ฟเวอร์ของ Google สำหรับการสร้างแอปพลิเคชันที่ขับเคลื่อนด้วยเหตุการณ์ เป็นผลิตภัณฑ์ร่วมกันระหว่างทีม Google Cloud Platform และทีม Firebase

สำหรับนักพัฒนาแพลตฟอร์ม Google Cloud , ฟังก์ชั่นคลาวด์ทำหน้าที่เป็นชั้นเกี่ยวพันช่วยให้คุณสามารถสานตรรกะระหว่าง Google แพลตฟอร์มคลาวด์ (GCP) บริการโดยการฟังและการตอบสนองต่อเหตุการณ์ที่เกิดขึ้น

สำหรับนักพัฒนา Firebase , ฟังก์ชั่นคลาวด์สำหรับ Firebaseมีวิธีที่จะขยายการทำงานของ Firebase และบูรณาการ Firebase ให้บริการที่นอกเหนือจากเซิร์ฟเวอร์รหัสด้านข้าง

โซลูชันทั้งสองให้การเรียกใช้ฟังก์ชันที่รวดเร็วและเชื่อถือได้ในสภาพแวดล้อมที่มีการจัดการอย่างสมบูรณ์ซึ่งคุณไม่จำเป็นต้องกังวลเกี่ยวกับการจัดการเซิร์ฟเวอร์หรือการจัดเตรียมโครงสร้างพื้นฐานใด ๆ

...

Cloud Functions สำหรับ Firebase เหมาะสำหรับนักพัฒนา Firebase:

  • Firebase SDK เพื่อกำหนดค่าฟังก์ชันของคุณผ่านรหัส
  • ผสานรวมกับ Firebase Console และ Firebase CLI
  • ทริกเกอร์แบบเดียวกับ Google Cloud Functions รวมถึง Firebase Realtime Database, Firebase Authentication และ Firebase Analytics

3

มีความแตกต่างเพิ่มเติม: ฟังก์ชัน Firebase สามารถใช้งานได้ใน JS หรือ Node.JS เท่านั้นในขณะที่ Cloud Functions อนุญาตให้ใช้ Python และ Go

นอกจากนี้ยังมีความแตกต่างเล็กน้อยในแง่ของราคาหากคุณใช้ Spark Plan ลองดูhttps://firebase.google.com/pricingกับhttps://cloud.google.com/functions/pricing หากคุณใช้แผน Blaze ราคาจะเท่ากัน

ฉันใช้ทั้งสองอย่างกับโปรเจ็กต์ Firebase ของฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.