Firebase Realtime Database 是一種基於雲端的 NoSQL 數據庫,讓您可以存儲和同步用戶或其他服務的數據。其主要特點是即時性,意味著數據的任何更改會立即反映到所有連接的用戶和系統中。這使它成為構建高實時性應用程序,如聊天應用、協同工具或在多個設備之間同步設置的理想選擇。

在這篇文章中,我們將學習如何在 PHP 中創建一個簡單的類(class)來將資料存儲到 Firebase Realtime Database。

前置條件

  • 你應該已經有一個 Firebase 帳戶和一個建立好的 Firebase Realtime Database。
  • 你需要有基本的 PHP 編程知識。

步驟 1:獲取 Firebase API 金鑰

  1. 登入 Firebase 控制台。
  2. 選擇你的項目並進入設定。
  3. 在「服務帳戶」選項卡下,生成新的私鑰文件,這將是一個 .json 文件。
  4. .json 文件中找到 API 金鑰(apiKey)。

步驟 2:創建 Firebase 類

首先,我們需要創建一個 PHP 類來與 Firebase 進行交互。這個類將包含一個 put 方法,用於將資料存儲到 Firebase。

在你的 app/Libraries 目錄下,創建一個名為 Firebase.php 的文件,並添加以下內容:

<?php
namespace App\Libraries;

class Firebase {
    private $firebaseUrl;
    private $apiKey;

    public function __construct($firebaseUrl, $apiKey) {
        $this->firebaseUrl = $firebaseUrl;
        $this->apiKey = $apiKey;
    }

    public function put($path, $data) {
        $jsonData = json_encode($data);

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $this->firebaseUrl . $path . '.json?apiKey=' . $this->apiKey);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
        curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type: application/json',
            'Content-Length: ' . strlen($jsonData)
        ));

        $result = curl_exec($ch);
        curl_close($ch);

        return $result;
    }
}

步驟 3:使用 Firebase 類

在你的控制器中,你可以這樣使用這個 Firebase 類:

namespace App\Controllers;

use App\Libraries\Firebase;

class YourController {
    private $firebase;

    function __construct() {
        $firebaseUrl = getenv('FIREBASE_URL');
        $apiKey = getenv('FIREBASE_API_KEY');

        $this->firebase = new Firebase($firebaseUrl, $apiKey);
    }

    public function addData() {
        $path = "your/path";
        $data = [
            "name" => "John",
            "email" => "john@example.com"
        ];

        $this->firebase->put($path, $data);
    }
}

環境變量設定

.env 文件中,添加以下兩行:

FIREBASE_URL=https://your-firebase-url
FIREBASE_API_KEY=your-api-key

然後,在你的 PHP 代碼中使用 getenv() 函數來讀取這些環境變量。

總結

這樣,你就有了一個可以將資料存儲到 Firebase Realtime Database 的簡單 PHP 類。你可以根據需要繼續擴展這個類,例如添加更多的 CRUD 操作方法。

希望這篇文章對你有幫助!如果你有任何問題或建議,請在下面留言。

最後修改日期: 2023 年 10 月 26 日

作者