Firebase : Cloud Functions

คำบอกเล่า : เนื้อหานี้เหมาะสำหรับ Develoepr Android ผู้ขี้เกียจไปนั่งศึกษา การทำ webservice แล้วก็ service 
ช่วงนี้นั่งเขียน app อยู่ตัวนึงใช้ Firebase ทั้งระบบเลย เป็น app แนว market place ทีนี้ตัว app มันต้องมีระบบแจ้งเตือนเว้ย นั่งหาวิธีโกงอยู่ตั้งนาน ประมาณว่ารัน service ทิ้งไว้แล้วเปิด listener ใส่ Firebase Database ทำไปทำมารู้สึกไม่เวิร์ค เลยไปหาวิธีอื่นดู search ไปๆมาๆมีคนแนะนำ นี่เลย Functions บน Firebase ฮาฮ่านี่แหละตอบโจทย์ที่ต้องการ แต่มันยังเป็น beta อยู่นะ

แล้วมันทำไรได้หละ

ไว้ใช้เรียก functions ต่างๆของ firebase ได้ไง อย่าง trigger database เวลามีการเพิ่มลดข้อมูลให้ส่ง notification ไปให้ users อย่างที่เรากำลังจะทำ หรือ แก้ไข database เพิ่ม field เขียน log ตามแล้วแต่ใจต้องการ

มันยากมั้ยอะ

ลึกๆไม่แน่ใจนะ ถ้าเราถนัดเขียน Android แล้วมีคนมาถามว่าเขียน Android ยากมั้ยเราก็ตอบเหมือนๆกันแหละว่ามันไม่ยาก อะไรๆพอทำเป็นแล้วมันก็ไม่ยากทั้งนั้นแหละ แต่อันนี้เป็น Node Js ไม่เคยเขียนก็เราก็เขียนเฉพาะที่เราจะใช้พอ 555

หลังจากพาไปเมาคลื่นมาและออกทะเลไปไกล เรามาเริ่มกันเลยดีกว่าอย่าเสียเวลา

ก่อนอื่นใครยังไม่มี Node Js ก็ไปลงก่อน version 6.3.1 or greater นะจ๊ะ npm ด้วยอยากรู้ย่อมาจากอะไรไปกดอ่านที่มุมซ้ายบนที่หน้าเวปนะ 555 เสร็จ install firebase tools ด้วยคำสั่งนี้ใน Terminal
npm install -g firebase-tools

รอจนเสร็จ ทีนี้ Terminal ของเราจะรู้จักกับ คำสั่ง firebase

step ต่อมาตามนี้เลย

1.firebase login ได้ login เข้าไป user ที่เรา register project ใน web firebase

2.สร้าง directory สำหรับ call function

3.cd ย้ายpath ไปที่ project นั่น

4.จากนั้นร่าย firebase init functions บูมเราก็จะได้ directory ชื่อ functions มาในนั้นจะมี index.js อยู่เข้าไปเขียน function กันเลย

เขียน initalize ตาม code นี้ไว้ใน file index.js

const functions = require('firebase-functions');

const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

ต่อมาคนที่ถนัดคนเขียน Node Js เราคงมองว่า easy และ

อันนี้ case สมมุติจากตัวอย่างใน document ของ firebase trigger database สมมุติใน database เรามี meesage/pushId/original แล้วเราจะให้มัน trigger function เราเวลามีการเปลี่ยนแปลง อะไรใน path นี้ของ database ก็เขียนตามนี้เลย

exports.makeUppercase = functions.database.ref('/messages/{pushId}/original')
.onWrite(event => {

Do something...
    });

exports.|ชื่อใน cloud functions| = functions.database.ref(‘path ที่เราต้องการ’).onWrite(event =>{

ทำตามที่ใจคุณต้องการในนี้ได้เลย

});

อยากจะเขียนกี่ functions ก็เขียนไป เสร็จแล้ว deploy
$ firebase deploy --only functions

แค่นี้เราก็จะมี function เรียกๆในฝั่ง server แล้วเย้

เราสามารถเรียก messaging ในนี้ได้เลยตาม code ด้านล่าง

admin.messaging().sendToTopic(ชื่อ topic ที่ device subscribe , payload , option)

つづく

Like what you read? Give u naja a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.