= โฮสต์เว็บไซต์แบบไดนามิกบน Google Firebase โดยใช้ Node.js และ Cloud Firestore DB = ทูชาร์ คาปูร์: (https://www.tusharck.com/) URL Git สาธิต: httpsgithub.com/tusharck/firebase-demo = ทำไมต้องเป็นโฮสติ้ง Firebase? = Firebase เป็นแพลตฟอร์มแอปที่ครอบคลุมที่สร้างขึ้นบนโครงสร้างพื้นฐานของ GoogleâÃÂàดังนั้นจึงมีความปลอดภัย รวดเร็ว ฟรี (มีตัวเลือกแบบชำระเงินสำหรับทรัพยากรเพิ่มเติมด้วย) และวิธีง่ายๆ ในการโฮสต์เนื้อหาของคุณบน แอปพลิเคชันเว็บหรือมือถือ == คุณสมบัติหลักและประโยชน์ของ Free Tier: == - ให้โดเมนที่กำหนดเองฟรี& SSL(SSL เป็นชั้นความปลอดภัยมาตรฐานสำหรับการเชื่อมต่อ https - Cloud Firestore: ฐานข้อมูลที่ยืดหยุ่นและปรับขนาดได้สำหรับการซิงค์ข้อมูลแบบเรียลไทม์ระหว่างแอปไคลเอนต์ - คุณสมบัติอื่นๆ: ฟังก์ชันคลาวด์, การส่งข้อความบนคลาวด์ (FCM), Crashlytics, ไดนามิกลิงก์, โฮสติ้ง, ML Kit, ที่เก็บข้อมูล, การตรวจสอบประสิทธิภาพ, การคาดการณ์และห้องปฏิบัติการทดสอบ (ฟังก์ชันและทรัพยากรของผลิตภัณฑ์เหล่านี้สามารถเพิ่มขึ้นได้โดยการซื้อแผนการชำระเงิน แต่ บริการระดับฟรีนั้นดีมาก หากต้องการดูแผน ตรวจสอบราคา Firebase) - ปรับขนาดทรัพยากรโดยอัตโนมัติ = ขั้นตอนในการโฮสต์เว็บไซต์ไดนามิกของคุณบน Firebase = == ข้อกำหนด == **1. บัญชี Google**หากคุณไม่มีบัญชี Google คุณต้องสมัครใช้งาน คุณสามารถทำได้โดยไปที่ httpsaccounts.google.com/SignUp **2. Node.js และ npm** Mac/Windows คุณสามารถดาวน์โหลดตัวติดตั้งได้จาก httpsnodejs.org/en/download/ ลีนุกซ์ ทำตามขั้นตอนด้านล่างเพื่อติดตั้ง Node.js: 1. เปิดเทอร์มินัล 2. เรียกใช้คำสั่งต่อไปนี้: sudo apt-get ติดตั้ง curlcurl -sL httpsdeb.nodesource.com/ setup_13.x| sudo bash -sudo apt install nodejs ** ฉันใช้แล้ว หมายเหตุ: ** ** setup_13.xเพราะในขณะที่กวดวิชาเป็นเวอร์ชันล่าสุด **13**คุณสามารถตรวจสอบรุ่นล่าสุดได้โดยไปที่ httpsnodejs.org/en/ หากต้องการตรวจสอบว่าติดตั้ง Node.js และ npm สำเร็จหรือไม่ ให้รันคำสั่งต่อไปนี้ ซึ่งจะแสดงผลเวอร์ชันที่ติดตั้ง: โหนด -v npm -v **3. Firebase-CLI (Command-Line Interface) เป็นเครื่องมือสำหรับจัดการ ดู และปรับใช้โครงการ Firebase npm ติดตั้ง -g เครื่องมือ firebase = ขั้นตอนที่ 1: สร้างโครงการ Firebase = - ไปที่ httpsfirebase.google.com และ ลงชื่อเข้าใช้จากมุมขวาบน - คลิกที่ ไปที่คอนโซล จากมุมขวาบน - จากนั้นคลิกที่ สร้างโครงการตามที่แสดงด้านล่าง 4. สิ่งต่อไปคือการป้อนชื่อโครงการของคุณ และกดดำเนินการต่อ 5. กดดำเนินการต่อเพื่อเปิดใช้งาน Google Analytics สำหรับโครงการ Firebase ของคุณ (หากคุณไม่ต้องการ ให้ทำเครื่องหมายที่ปิดการใช้งาน) 6. เลือกตำแหน่งที่ใกล้ที่สุดสำหรับ Google Analytics 7. คลิกที่ **สร้าง Project และรอโหลด จากนั้นคุณจะเห็นสิ่งที่ต้องการด้านล่าง = ขั้นตอนที่ 2: เริ่มต้นการเข้าสู่ระบบ Firebase = - เปิด command-line/terminal จากนั้นสร้างและไปที่ไดเร็กทอรีใหม่ mkdir my-firebase-projectcd my-firebase-project.mkdir 2. ในการโฮสต์เว็บไซต์บน Firebase ให้ลงชื่อเข้าใช้ firebase โดยใช้คำสั่งต่อไปนี้ หลังจากที่คุณเรียกใช้คำสั่ง หน้าต่างเบราว์เซอร์จะเปิดขึ้นเพื่อขอให้คุณลงชื่อเข้าใช้ firebase โดยใช้ข้อมูลรับรอง Google ของคุณ ป้อนข้อมูลรับรองที่นั่นและ Firebase จะลงชื่อเข้าใช้ระบบของคุณ เข้าสู่ระบบ firebase = ขั้นตอนที่ 3: เริ่มต้นโครงการ Firebase ในระบบของคุณ = - ตอนนี้เราต้องเริ่มต้นโครงการที่เราสร้างบนคอนโซล Firebase เข้าสู่ระบบ สำหรับการรันคำสั่งด้านล่าง เริ่มต้น firebase 2. กดปุ่มลงแล้วเลือก **สองสิ่ง **โดยกดแป้น **สเปซบาร์ - ฟังก์ชั่น - โฮสติ้ง แล้ว **กด Enter** เพื่อดำเนินการต่อ 3. จากนั้นเลือก จากนั้นกด Enter **ใช้โครงการที่มีอยู่** 4. กด Enter บน **my-firebase-project** **หรือชื่อโครงการที่คุณใช้หรือชื่อโครงการที่คุณใช้ 5. เลือก **Javascript** แล้วกด Enter 6. คุณสามารถพูดได้ **ไม่ใช่** ถึง คุณต้องการใช้ ESLint เพื่อตรวจจับข้อผิดพลาดที่อาจเกิดขึ้นและบังคับใช้รูปแบบหรือไม่ 7. ประเภท **ใช่** สำหรับการติดตั้งการพึ่งพาด้วย npm 8. ที่นี่เราต้องทำสองงาน: - คุณต้องเลือกไดเร็กทอรีสำหรับเว็บไซต์และทรัพย์สินของคุณ โดยค่าเริ่มต้นก็คือ pubic คุณสามารถกด Enter เพื่อดำเนินการต่อหรือคุณสามารถเปลี่ยนชื่อไดเร็กทอรีที่คุณต้องการได้ - ประเภท ใช่สำหรับหน้าแอปเดียว เพื่อให้ URL แบบไดนามิกของคุณสามารถเปลี่ยนเส้นทางไปยังปลายทางที่เหมาะสมได้ 9. ทดสอบแอป firebase บนระบบโลคัลของคุณโดยเรียกใช้คำสั่งต่อไปนี้ จากนั้นไปที่ **httplocalhost:5000** เพื่อดูเว็บไซต์พื้นฐานของคุณทำงาน firebase ให้บริการ - เฉพาะการโฮสต์, ฟังก์ชั่น คุณควรเห็นสิ่งนี้ด้านล่างหลังจากเปิด **httplocalhost:5000** URL 10. ปิดเซิร์ฟเวอร์จากเทอร์มินัล = ขั้นตอนที่ 4: การติดตั้งแพ็คเกจและสร้างไดเรกทอรีมุมมองสำหรับเว็บไซต์แบบไดนามิก = - ที่นี่เราจะสลับภายในไดเร็กทอรีฟังก์ชั่นเพื่อใช้งาน ฟังก์ชั่นซีดี **2. ติดตั้ง Express** เป็นเฟรมเวิร์กเว็บแอปพลิเคชัน Node.js ที่เล็กและยืดหยุ่น npm ฉันแสดง --save **3. ติดตั้ง Handle Bars** เป็นโปรแกรมสร้างเทมเพลตสำหรับ Node.js ที่ใช้สำหรับส่วนหน้าไดนามิกของเว็บไซต์ npm ฉันแฮนด์บาร์ - บันทึก **4. ติดตั้งรวม** npm ฉันรวม - บันทึก 5. สร้างโฟลเดอร์ชื่อ **views** ภายในโฟลเดอร์ **functions** ที่เราจะเก็บ frontend code ทั้งหมด มคเดียร์ มุมมอง 6. สลับกลับไปที่ไดเร็กทอรีหลักโดยเรียกใช้คำสั่งต่อไปนี้: ซีดี . = ขั้นตอนที่ 5: การตั้งค่า Firestore (ฐานข้อมูลบนคลาวด์) = == การกำหนดค่าฐานข้อมูล == - ไปที่ httpsconsole.firebase.google.com/ - เลือกโครงการของคุณ - เลือก ฐานข้อมูลจากบานหน้าต่างด้านซ้าย 4. คลิกที่ ** สร้างฐานข้อมูล ** 5. เลือก Start in test mode เพราะมิฉะนั้นคุณจะไม่สามารถเข้าถึงฐานข้อมูลจากระบบของคุณได้ เราจะเปลี่ยนการตั้งค่านี้เมื่อเราพัฒนาเว็บไซต์เสร็จแล้ว จากนั้นคลิก **ถัดไป** หลังจากทำเช่นนั้น 6. เลือกตำแหน่งของ Firestore DB ของคุณ **หลังจากที่คุณตั้งค่าตำแหน่งนี้แล้ว คุณจะไม่สามารถเปลี่ยนได้ในภายหลัง บันทึก: ** == สร้างข้อมูล == - คลิกที่เริ่มคอลเลกชัน 2. เข้าสู่ **Collection ID ที่คุณสามารถสุ่มตัวอย่างได้ในตอนนี้ 3. ป้อนข้อมูลตัวอย่าง เข้า **sample_doc **เป็น **รหัสเอกสาร **ป้อน **หัวเรื่อง** ภายในช่อง ** ฉันชอบ Cloud** ภายใน **Value จากนั้นคลิก **บันทึก** = ขั้นตอนที่ 6: สร้างเนื้อหาไดนามิกของเว็บไซต์ = เราจะแบ่งส่วนออกเป็นสองส่วน ส่วนแรก เราจะดูวิธีการดึงข้อมูลจาก Firestore และนำไปใช้ในเว็บไซต์ ในส่วนที่สอง เราจะดูวิธีการส่งข้อมูลแบบฟอร์ม **ขั้นแรก เราจะดาวน์โหลดข้อมูลประจำตัวเพื่อเข้าถึง Firestore** 2. คลิกที่ **การตั้งค่า** จากบานหน้าต่างด้านซ้าย และไปที่ **การตั้งค่าโครงการ** 3. ไปที่ **บัญชีบริการ** และคลิกที่ **สร้างรหัสส่วนตัวใหม่ 4. คลิกที่ **สร้างรหัส มันจะให้ป๊อปอัปเพื่อดาวน์โหลดรหัส เก็บคีย์ไว้ในโฟลเดอร์ **functions** ของเว็บไซต์ == กำลังดึงข้อมูลจาก Firestore == - เปิด index.js ข้างโฟลเดอร์ functions.js 2. เราจำเป็นต้องกำหนดไลบรารีบางตัวที่เราต้องการใช้ในแอปพลิเคชันของเรา เหล่านี้เป็นห้องสมุดเดียวกับที่เราติดตั้งไว้ก่อนหน้านี้ ฟังก์ชัน const = ต้องการ ('firebase-functionsconst express = ต้องการ ('expressconst เครื่องยนต์ = ต้องการ ('consolidatevar hbs = ต้องการ ('handlebarsconst admin = ต้องการ ('firebase-admin 3. ที่นี่เราตั้งค่าบางสิ่ง: - เริ่มต้นแอปโดยใช้ด่วน - เราจะตั้งเครื่องยนต์ของเราเป็นแฮนด์บาร์ - จากนั้นเราจะบอกด่วนว่าโค้ดส่วนหน้าของเราจะอยู่ในโฟลเดอร์มุมมอง แอพ const = expressapp.engine('hbs',engines.handlebars);app.set('viewsviewsapp.set('ดู enginehbs 4. อนุญาตให้แอปพลิเคชันของคุณเข้าถึงฐานข้อมูล Firestore ของคุณ *บันทึก:* 1. เปลี่ยน **YOUR_SDK_NAMEjson กับไฟล์ที่คุณดาวน์โหลดสำหรับ **ข้อมูลรับรองเพื่อเข้าถึง Firestore2 เปลี่ยน URL ฐานข้อมูลเป็น URL ฐานข้อมูลของคุณ หากต้องการดู URL คุณสามารถไปที่**การตั้งค่า >บัญชีบริการ** var serviceAccount = ต้องการ YOUR_SDK_NAME.jsonadmin.initializeApp({ข้อมูลประจำตัว: admin.credential.cert(serviceAccount), ฐานข้อมูลURL: "httpsmyfirebaseproject-bx54dasx3.firebaseio.com 5. ฟังก์ชั่นดึงข้อมูลจาก Firestore - ID คอลเลกชันคือ ตัวอย่าง - รหัสเอกสารคือ ตัวอย่าง_doc เราได้กำหนดไว้ข้างต้นในขณะที่ป้อนข้อมูลตัวอย่าง ฟังก์ชัน async getFirestoreconst firestore_con = wait admin.firestoreconst writeResult = firestore_con.collection('sampledoc('sample_docgetthen(doc =>{ ถ้า (!doc.exists) { console.log('ไม่มีเอกสารดังกล่าว } อื่น {กลับ doc.data .catch(err =>{ console.log('ข้อผิดพลาดในการรับเอกสาร', errreturn writeResult } **เราใช้หมายเหตุ: ** **async** เนื่องจากเราต้องรอการดำเนินการตามสัญญาให้เสร็จสิ้นระหว่างฐานข้อมูลและเว็บไซต์ของเรา 6. สร้างเส้นทางและส่งผลลัพธ์ไปยังส่วนหน้า app.getasync (คำขอ, การตอบสนอง) var db_result = รอคอย getFirestoreresponse.render ('indexdb_resultexports.app = functions.https.onRequest (แอป); 7. สร้าง **index.hbs** ภายในโฟลเดอร์ **views** hbs เป็นไฟล์แฮนเดิลบาร์ หมายเหตุ: ** 8. เขียนโค้ด HTML พื้นฐานนี้ไว้ข้างใน **index.hbs** เพื่อดูผลลัพธ์ที่ดึงมา
" method="post" >
Sample Form First name:

Last name: