มาอัพโหลด File เข้า Firebase Storage ด้วย Firebase Functions ด้วย Nodejs กัน

ผมจะสร้าง Firebase Functions ด้วย Nodejs แล้วอัพโหลด File เข้า Firebase Store

เริ่มแรกมาต้องติดตั้ง Firebase ลงในเครื่องตัวเองก่อน

npm install -g firebase-tools

หลังจากนั้นทำการ Login Firebase ผ่านเครื่องตัวเอง

firebase login

จากนั้นจะได้ Link มาแล้วนำไปใส่ช่อง Browser อันไหนก็ได้

หลังจากนั้นทำการสร้าง Project แล้วตั้งชื่อตามที่ตัวเองต้องการ ตอนนี้ผมสร้าง Project ว่า Demo-Firebase-Medium แล้วทำการสร้าง Storage ใน Project เรา

มาถึงวิธีเตรียมการขั้นสุดท้ายแต่ยังไม่ท้ายสุดก่อนที่เราจะไปเริ่ม Code กัน

หลังจากเข้า Project Settings แล้วให้ไปที่เลือกเมนู Service Accounts แล้วกด Generate New Private Key แล้วเก็บ File ที่ได้เก็บไว้ให้ดีหายได้มาสร้างใหม่ครับ

ต่อไปเราไปสร้าง Folder ไว้ในที่เราจะ Code และ Run Code

mkdir demo-firebase
cd demo-firebase

หลังจากเราเข้ามาใน Folder ที่สร้างไว้แล้ว

firebase init

พอ Firebase Init ก็จะมีให้เราเลือกต่างๆ ผมเลือกที่จะใช้แต่ Firebase Functions และเลือก Project ที่สร้างไว้อยู่แล้ว ส่วนตัวอย่าง Code ในครั้งนี้ ผมจะทำเป็น JavaScript

หลังจากติดตั้งเสร็จให้ เข้า Folder Functions

cd functions

หลังจากเข้ามาเราก็ทำการโหลด Libraries ต่างๆเข้ามา หลักๆผมจะใช้ Express ในการทำ RESTful API ใช้ express-multipart-file-parser เพื่อทำการจัดการ File Upload ต่างๆ และใช้ Cors เพื่อให้เข้าถึงจากภายนอกได้ ส่วน body-parser เอาไว้เวลาส่ง body เป็น json เข้ามา แต่เราจะพูดถึงแค่ตัวอัพโหลด File เท่านั้นในครั้งนี้

npm install express express-multipart-file-parser cors body-parser

หน้าตา package.json อย่าลืมใส่ engines แล้วเลือก Version รองรับตั้งแต่ Node10+

หลังจากนั้นสร้าง private.json ไว้ใน Folder Functions

แล้ว Coppy ข้อมูล ที่เรา Generate New Private Key เราจะได้ File มา เข้าไปในนั้นแล้ว Coppy ทั้งหมดมาลงใน file private.json

หน้าตาจะได้แบบนี้

หลังจากนั้นเริ่มไปทำ Code หน้า index.js

หลังจากนั้นเราก็ Import File Private.json และกำหนด Store Path ของ Store จะได้ตอนสร้าง Store ขั้นตอนแรกๆ แล้วทำการ initializeApp ตามตัวอย่าง Code

ส่วน Code ผมยกตัวอย่างแค่ Get และ Post ตามหลักความจริงเราต้องแยก Code ออกเป็นหลายส่วนมากมันเขียนได้หลาย Concept มากอธิบายแล้วยาวแน่ๆครับเอาไว้ผมแยกเป็นบทความอื่นๆ

ขั้นตอนสุดท้ายทำการ Deploy Code ก่อนจะ Deploy Code

ต้องไปปรับ Plan Spark เป็น Blaze ไม่งั้นจะ Deploy ไม่ได้หลังจากเราปรับตรงนี้เสร็จกลับไปที่ Code เรา

firebase deploy

หลังจาก Deploy เสร็จเราก็จะได้ URL มาเพื่อยิง API

หลังจากนั้นลองยิง API ดู ด้วย Post Man

จะได้ response ตามที่เราทำไว้ใน Code เลย

บทความนี้เป็นตัวอย่างแค่ส่วนหนึ่งของการใช้ firebase เพื่อให้เห็นภาพและนำไปต่อยอดไม่ว่าจะเป็นการเชื่อมฐานข้อมูลและพลิกแพลงนำไปต่อยอดได้อีกมากมาย โดยที่เราไม่ต้องมาตั้ง Server เองและยังมี features อีกมากมายให้ลองเล่น

Git สามารถโหลด แล้วสร้าง Project แล้วเปลี่ยน Private Key และ Storage Bucket ได้เลย หรือจะลอง Run Code ในเครื่องตัวเองตาม Read Me แล้วทดสอบยิง API ได้เลย

บทความเดิมจากตอนที่แล้ว มาทำความรู้จักและข้อเปรียบเทียบ Firebase Functions vs AWS Lambda

( CR. ธำรงค์ ไชยวงค์ )

--

--