สวัสดีปีใหม่ไทย


ทดลองใช้ Realtime Database ใน Firebase ด้วย Yii Framework 2

คู่มือการเรียนรู้ Yii Framework 2 (Yii2)

บทเรียนดีๆ สำหรับผู้ที่ต้องการแบ่งปัน บทเรียนของคุณอาจมีค่าสำหรับอีกหลายๆ คน

beta version

ทดลองใช้ Realtime Database ใน Firebase ด้วย Yii Framework 2

มานพ กองอุ่น yii firebase realtime database 3,929

ในบทเรียนรู้นี้เรามาทดลองใช้งาน Realtime Database ใน Firebase ด้วย Yii Framework 2 กันครับ (จริงๆ แล้วสามารถทดลองเขียนแบบไม่ต้องใช้ Yii Framework ก็ได้นะ ลองเอาไปประยุกต์นะครับ)

คุณสมบัติเด่นของ Realtime Database ก็ตรงตัวอยู่แล้วนะครับ คือเป็นการทำงานแบบ Realtime ในการทดสอบนี้จะทดลองเขียนเพื่อเชื่อมต่อและแก้ไขข้อมูลจากนั้นก็ตรวจสอบว่ามัน Realtime จริงป่าว เพื่อเป็นแนวทางในการศึกษาต่อไป

ในที่นี้ใช้การเชื่อมต่อแบบ public ก่อนนะครับ เพื่อการทดสอบ หากไม่ทำแบบนี้จะต้องไปตั้งค่า auth กันอีกรอบ (คราวหน้าจะมาเขียนเพิ่มเรื่อง auth ครับ)

การตั้งค่า Firebase Realtime Database

เพิ่มข้อมูล

เข้าไปที่ Console ของ Firebase จากนั้นเลือก Project ที่ต้องการ (หากไม่มีให้สร้างขึ้น) จากนั้นไปที่เมนู Database ด้านซ้ายมือ ทดลองเพิ่มข้อมูลไว้ดังนี้

 

กำหนด rule

กำหนด rule ให้เป็น public โดยกำหนดใน tab RULES แล้วกำหนดดังนี้

ทำการ public ให้เรียบร้อยจะเห็นการแจ้งเตือน

 

เป็นอันเรียบร้อยสำหรับการตั้งค่าในฝั่ง Firebase Console

 

สร้าง Controller และ Action

ทดลองสร้าง Controller ใน frontend/controllers/FirebaseController.php จากนั้นสร้าง actionIndex() ดังนี้

<?php
namespace frontend\controllers;

class FirebaseController extends \yii\web\Controller
{
	public function actionIndex()
	{
		return $this->render('index');
	}
}

จากนั้นสร้าง view ใน views/firebase/index.php ซึ่งจะนำค่าต่างๆ ที่ Firebase แนะนำมาใส่ตรงนี้ โดยเราจะใช้ registerJsFile และ registerJs มาช่วย โดยเราต้องทราบการ config ค่าก่อนโดยคลิกที่ Project จากนั้นคลิกที่ Add Firebase to your web app จะมี popup แสดงรายละเอียดการตั้งค่าเกิดขึ้น

จากนั้นนำข้อมูลมา register โดยในที่นี้จะ register นอก jQuery(document).ready(function () {});ดังนี้

<?php
use yii\web\View;
$this->title = 'Firebase Test';

?>
<pre id="object"></pre>
<?php $this->registerJsFile('https://www.gstatic.com/firebasejs/3.2.1/firebase.js')?>
<?php $this->registerJs('
(function(){
	// Initialize Firebase
  const config = {
    apiKey: "your_api_key",
    authDomain: "your_auth_domain.com",
    databaseURL: "https://your_database_url.com",
    storageBucket: "your_storage_bucket.com",
  };
  firebase.initializeApp(config);

	const preObject = document.getElementById("object");
		
	const dbRefObject = firebase.database().ref().child("object");
		
	dbRefObject.on("value", snap => {
		preObject.innerText = JSON.stringify(snap.val(), null, 3);
	});
}());', View::POS_END)?>

เมื่อทำถูกต้องจะเห็นการแสดงผลดังนี้

จากนั้นทดลองเปลี่ยนค่าใน Firebase Console

จากนั้นจะเห็นการเปลี่ยนแปลงใน Web Application แบบทันที (Realtime) โดยไม่ต้อง refresh 

สรุป

Realtime Database ช่วยให้สามารถ Sync ข้อมูลกันได้แบบ Realtime การทดสอบการใช้งาน Firebase Realtime database ด้วย Yii Framework 2 นี้เป็นการทดลองทำความเข้าใจขั้นตอนการใช้งานแบบง่ายเพื่อให้เห็นกระบวนการทำงานเบื้องต้น ส่วนรายละเอียดการตั้งค่า auth จะกล่าวในลำดับถัดไป

 

อ้างอิง

https://firebase.google.com/docs/database/web/start
https://www.youtube.com/playlist?list=PLl-K7zZEsYLmnJ_FpMOZgyg6XcIGBu2OX

 


หากบทเรียนรู้มีความผิดพลาดประการใด หรือมีข้อเสนอแนะกรุณาแจ้ง contact@programmerthailand.com
มานพ กองอุ่น

มานพ กองอุ่น
admin

  • 2 เพื่อน
  • 8 ผู้ติดตาม
  • 752 โพสต์
กลับขึ้นบน