Database
 sql >> Datenbank >  >> RDS >> Database

Integrieren Sie Firebase mit PHP für Echtzeitkommunikation

Datenmanagement und -transaktionen in Echtzeit sind heutzutage die neueste Art der Kommunikation. Menschen benötigen einen schnellen Datenfluss bei der Nutzung von Mobil- und Webanwendungen. Im Internet sind viele Dienste verfügbar, um Echtzeit-Datenbanken und Kommunikationssysteme zu erstellen. Bekannte Tools dafür sind zum Beispiel Pusher, Onesignal und Googles Firebase. Zuvor haben Sie gelernt, wie Sie Firebase in Laravel integrieren, und die folgenden Themen behandelt:

  1. Firebase einrichten und API-Schlüssel generieren.
  2. In Laravel integrieren

In diesem PHP-Firebase-Beispiel gebe ich Ihnen eine kleine Zusammenfassung des vorherigen Artikels und zeige Ihnen, wie Sie Firebase in PHP 7.x integrieren und einfache CRUD-Funktionen erstellen, mit denen Sie Datenbankmanipulationen durchführen können.

Integrieren Sie Firebase mit PHP
  • Eine kleine Zusammenfassung von Firebase
  • Wofür wird Firebase verwendet?
  • Firebase vs. MySQL
  • Vor- und Nachteile von Firebase
  • Firebase in der Konsole einrichten
  • Einrichten des PHP-Servers bei Cloudways
  • Integrieren Sie PHP in Firebase
  • Verbindung mit Firebase herstellen
  • Benutzerklasse in Users.php erstellen
  • Firebase mit PHP-Kontaktformular verbinden
  • Schlussworte

Eine kleine Zusammenfassung von Firebase

Firebase ist ein Echtzeit-Kommunikationsdienst, der Echtzeit-Datenfluss für Chat-, Mobil- und Webanwendungen bereitstellt. Es bietet mehrere Echtzeitdienste, darunter Cloud-Messaging, Authentifizierungssysteme, Firebase-PHP-Datenbank, Benachrichtigungssysteme, Speicher und Firebase-Hosting, wodurch seine Plattform zu einer vollständigen Fülle von Tools und Diensten für die Entwicklung hochwertiger Apps wird.

In diesem Artikel werde ich kurz auf die Firebase-Datenbank eingehen. Tatsächlich bietet Firebase eine PHP-Echtzeitdatenbank und ein Backend als Dienst. Der Dienst bietet Entwicklern eine API, die die Synchronisierung von Anwendungsdaten über Clients hinweg ermöglicht, die in der Firebase-Cloud gespeichert sind. Dadurch entfällt die Notwendigkeit eines relationalen Datenbanksystems auf Ihrem Hosting-Server wie MySQL und andere.

Wofür wird Firebase verwendet?

Wenn der Benutzer Daten sehr schnell aus der Datenbank erstellen, generieren oder abrufen möchte, erleichtern ihm die Firebase-Echtzeitdienste die Durchführung von Vorgängen wie Live-Streaming, Chat-Funktion und mehr. Es ist ein perfektes Tool für Anwendungen mit großen Datenbanken wie Lyft, Shazam, Alibaba usw.

Einige Hauptfunktionen von Firebase sind:

  • Kein zusätzliches Geld für Backend-Server
  • Schnelle Anzeige der Daten im Server
  • NoSQL und damit schneller
  • Analytics
  • Gesichertes und schnelles Hosting
  • Kit für maschinelles Lernen
  • Authentifizierungsdienst für Benutzersicherheit
  • Cloud-Speicher
  • Schnelle Synchronisierung von Daten

Weniger Aufwand. Mehr Entwicklung.

Lassen Sie uns Ihre Hosting-Anforderungen zukunftssicher machen. Sie konzentrieren sich auf die Erstellung Ihrer Anwendungen.

Kostenlos starten

Firebase VS MySQL

Firebase unterscheidet sich buchstäblich von herkömmlichen Datenbanken wie MySQL und speichert Daten in Form von Dokumenten. Diese Dokumente können in Echtzeit in plattformübergreifenden Medien manipuliert werden. MySQL ist eine relationale Datenbank, die mit dem Schlüssel->Wert-Konzept arbeitet und Beziehungen zu verschiedenen Datensätzen herstellt.

Diese Beziehungen werden dann für Datentransaktionen verwendet. MySQL fehlt das Echtzeit-Datenübergangskonzept und es erfordert so viel Arbeit, um REST-APIs zu erstellen.

Andererseits bietet die Firebase-Datenbank verschiedene Plattformen wie Android, iOS und Web zum Erstellen schneller APIs. Grundsätzlich ist Firebase eine hierarchische Datenstruktur, d.h. es ist wie ein JSON-Baum in der Cloud.

Firebase hat das Konzept von Schlüsseln, bei denen es sich um die Namen der Knoten handelt, unter denen Sie Daten speichern. Sie könnten sie irgendwie mit den Primärschlüsseln einer relationalen Datenbank vergleichen, aber es gibt kein Konzept eines verwalteten Fremdschlüssels darin.


Holen Sie sich jetzt Ihr VueJS-Handbuch

Geben Sie einfach Ihre E-Mail-Adresse ein und erhalten Sie den Download-Link in Ihrem Posteingang.

Danke

Ihr E-Book ist auf dem Weg in Ihren Posteingang.


Vor- und Nachteile von Firebase

Kürzlich bin ich auf die Stack Exchange-Frage zu den Vor- und Nachteilen von Firebase gestoßen, die sie sehr gut erklärt.

Profis

  • Wenn Ihre App auf einer zentralen Datenbank läuft und von vielen Benutzern aktualisiert wird, ist sie mehr als in der Lage, die Echtzeit-Datenaktualisierungen zwischen Geräten zu handhaben.
  • In der Cloud gespeichert, also überall verfügbar.
  • Plattformübergreifende API (wenn Sie diese Datenbank mit einer App verwenden)
  • Sie hosten die Daten – das heißt, wenn Sie viele Daten speichern, müssen Sie sich keine Gedanken über die Hardware machen.

Nachteile:

  • Wenn Ihre App nicht auf einer zentralen Datenbank läuft, die von einer großen Anzahl von Benutzern aktualisiert wird, ist dies ein großer Overkill.
  • Das Speicherformat unterscheidet sich vollständig von dem von SQL (Firebase verwendet JSON). Sie könnten also nicht so einfach migrieren.
  • Berichterstellungstools sind nicht annähernd die von Standard-SQL.
  • Kosten – Begrenzt auf 50 Verbindungen und 100 MB Speicherplatz.
  • Sie hosten die Daten nicht, Firebase schon. Je nachdem, welchen Server Sie bekommen, scheint es in letzter Zeit eine Menge Unterbrechungen zu geben, bis die Zeit angezeigt wird.

Firebase in der Konsole einrichten

Wie ich oben erwähnt habe, dass der vorherige Artikel alle Schritte zum Einrichten der Firebase-Datenbank in der Konsole behandelt hat, können Sie diesem Artikel einfach für eine kurze Zusammenfassung folgen. Die Punkte, die Sie zum Einrichten von Firebase befolgen müssen, sind:

  1. Erstellen Sie ein Projekt in Firebase
  2. Lese- und Schreibregeln für Benutzer einrichten
  3. Zu Benutzer und Berechtigungen zum Generieren von API-Schlüsseln wechseln
  4. Geheime JSON-Datei herunterladen und in Ihrem Projekt speichern

Jetzt können Sie PHP mit Firebase integrieren.

Richten Sie den PHP-Server bei Cloudways ein

Da Cloudways bereits die PHP 7.x-Version auf seinem Hosting für PHP-Websites bereitstellt, müssen Sie sich nur anmelden und einen Server starten, und der Rest ist auf der Plattform vorgefertigt. Die Anwendung wird zusammen mit dem Server eingerichtet und Sie können über die URL auf der Seite mit den Zugangsdetails darauf zugreifen

Sie müssen sich um einige Dinge kümmern, bevor Sie Firebase auf PHP-Servern ausführen, dass Sie PHP>=7.0-Version mit der mbstring-PHP-Erweiterung verfügbar haben müssen.

Das könnte Ihnen auch gefallen: So hosten Sie PHP auf Amazon AWS EC2

Integrieren Sie PHP mit Firebase

Firebase hat eine großartige API, die die Implementierung in verschiedenen Sprachen unterstützt. Für die Verwendung von PHP mit Firebase bietet es ein vollständiges PHP-Paket, das Sie für die Arbeit mit Firebase integrieren können. In dieser Anwendung verwende ich kreait/firebase-php was auch von Firebase empfohlen wird.

Die empfohlene Methode zum Installieren des Firebase Admin SDK ist Composer. Composer ist ein Abhängigkeitsverwaltungstool für PHP, mit dem Sie die für Ihr Projekt erforderlichen Abhängigkeiten deklarieren und in Ihrem Projekt installieren können.

composer require kreait/firebase-php ^4.17.0

Alternativ können Sie das Firebase Admin SDK als Abhängigkeit in der vorhandenen composer.json-Datei Ihres Projekts angeben:

{

  "require": {

     "kreait/firebase-php": "^4.17.0"

  }

}

Nach der Installation benötigen Sie den Autoloader von Composer:

<?php

require __DIR__.'/vendor/autoload.php';

Verbindung mit Firebase erstellen

Nachdem Sie die Paketinstallation abgeschlossen und den Autolader zur PHP-Datei hinzugefügt haben, können Sie mithilfe der von der Konsole heruntergeladenen geheimen Datei eine Verbindung mit Firebase herstellen. Sie müssen die URL dieser Datei in der Methode ServiceAccount::fromJsonFile() übergeben. Zweitens suchen Sie die URL der Firebase-Anwendung.

<?php

require __DIR__.'/vendor/autoload.php';



use Kreait\Firebase\Factory;

use Kreait\Firebase\ServiceAccount;



// This assumes that you have placed the Firebase credentials in the same directory

// as this PHP file.

$serviceAccount = ServiceAccount::fromJsonFile(__DIR__ . '/secret/php-firebase-7f39e-c654ccd32aba.json');



$firebase = (new Factory)

   ->withServiceAccount($serviceAccount)

   ->withDatabaseUri('https://my-project.firebaseio.com')

   ->create();



$database = $firebase->getDatabase();

Jetzt zu diesem Zeitpunkt, wenn Sie var_dump($database) ausführen; Sie sehen das vollständige von Firebase zurückgegebene Datenbankobjekt auf Ihrem Browserbildschirm.

Benutzerklasse in Users.php erstellen

Als nächstes werde ich eine neue Datei namens Users.php erstellen und darin eine User-Klasse deklarieren. Die Klasse enthält einen Konstruktor, in dem ich eine Verbindung von PHP mit der Firebase-API erstellen und initialisieren werde. Danach erhalte ich die in Firebase erstellte Datenbank.

public function __construct(){

       $acc = ServiceAccount::fromJsonFile(__DIR__ . '/secret/php-firebase-7f39e-c654ccd32aba.json');

       $firebase = (new Factory)->withServiceAccount($acc)->create();

       $this->database = $firebase->getDatabase();

   }

Um jetzt PHP-CRUD-Funktionen zum Manipulieren der Datenbank zu erstellen, erstelle ich separate Methoden für jeden Anwendungsfall. Aber zuerst erstellen wir zwei weitere Eigenschaften außerhalb des Konstruktors, der den Datenbanknamen

enthält
protected $database;

   protected $dbname = 'users';

Lassen Sie uns nun eine get()-Methode erstellen, um die Daten abzurufen. Es enthält die Benutzer-ID, um einen bestimmten Benutzerdatensatz abzurufen. Die Methode prüft auch, ob die Benutzer-ID nicht verfügbar oder festgelegt ist, und gibt in diesem Fall „false“ zurück. Wenn jedoch festgestellt wird, dass die ID richtig eingestellt ist, wird der Wert erfolgreich abgerufen.

public function get(int $userID = NULL){    

       if (empty($userID) || !isset($userID)) { return FALSE; }

       if ($this->database->getReference($this->dbname)->getSnapshot()->hasChild($userID)){

           return $this->database->getReference($this->dbname)->getChild($userID)->getValue();

       } else {

           return FALSE;

       }

   }

Innerhalb der Methode insert() übergebe ich das Datenarray, da es einzelne oder mehrere Daten enthalten kann. Wenn die Daten für die spezifische Benutzer-ID bereits verfügbar sind, werden die vorhandenen aktualisiert.

public function insert(array $data) {

       if (empty($data) || !isset($data)) { return FALSE; }

       foreach ($data as $key => $value){

           $this->database->getReference()->getChild($this->dbname)->getChild($key)->set($value);

       }

       return TRUE;

   }

Jetzt erstelle ich eine delete () -Funktion, die die Benutzer-ID als Parameter hat. Die ID wird validiert, wenn sie gesetzt ist, dann entfernt die Methode remove() die Daten.

public function delete(int $userID) {

       if (empty($userID) || !isset($userID)) { return FALSE; }

       if ($this->database->getReference($this->dbname)->getSnapshot()->hasChild($userID)){

           $this->database->getReference($this->dbname)->getChild($userID)->remove();

           return TRUE;

       } else {

           return FALSE;

       }

   }

Die vollständige Benutzerklasse sieht wie folgt aus:

<?php

require_once './vendor/autoload.php';



use Kreait\Firebase\Factory;

use Kreait\Firebase\ServiceAccount;



class Users {

   protected $database;

   protected $dbname = 'users';

   public function __construct(){

       $acc = ServiceAccount::fromJsonFile(__DIR__ . '/secret/php-firebase-7f39e-c654ccd32aba.json');

       $firebase = (new Factory)->withServiceAccount($acc)->create();

       $this->database = $firebase->getDatabase();

   }



   public function get(int $userID = NULL){    

       if (empty($userID) || !isset($userID)) { return FALSE; }

       if ($this->database->getReference($this->dbname)->getSnapshot()->hasChild($userID)){

           return $this->database->getReference($this->dbname)->getChild($userID)->getValue();

       } else {

           return FALSE;

       }

   }



   public function insert(array $data) {

       if (empty($data) || !isset($data)) { return FALSE; }

       foreach ($data as $key => $value){

           $this->database->getReference()->getChild($this->dbname)->getChild($key)->set($value);

       }

       return TRUE;

   }



   public function delete(int $userID) {

       if (empty($userID) || !isset($userID)) { return FALSE; }

       if ($this->database->getReference($this->dbname)->getSnapshot()->hasChild($userID)){

           $this->database->getReference($this->dbname)->getChild($userID)->remove();

           return TRUE;

       } else {

           return FALSE;

       }

   }

}



?>

Jetzt testen wir die Klasse. Versuchen Sie, Methoden anzuwenden und überprüfen Sie die Firebase-Datenbank, ob sie aktualisiert wird oder nicht. Initialisieren Sie zuerst die Klasse:

$users = new Users();

Lassen Sie uns nun einige Daten über die Methode insert() einfügen:

$users = new Users();

//var_dump($users->insert([

//    '1' => 'John',

//    '2' => 'Doe',

//    '3' => 'Smith'

//]));

Ebenso können Sie Daten wie folgt abrufen oder löschen:

var_dump($users->get(1));

var_dump($users->delete(2));

Sie können also sehen, wie ich eine einfache CRUD-Anwendung mit PHP und Firebase erstellt habe, indem ich eine einfache Klasse erstellt habe. Natürlich können Sie es erweitern und etwas Spannendes gemäß den Anforderungen erstellen.


Weniger Aufwand. Mehr Entwicklung.

Lassen Sie uns Ihre Hosting-Anforderungen zukunftssicher machen. Sie konzentrieren sich auf die Erstellung Ihrer Anwendungen.

Kostenlos starten

Firebase mit PHP-Kontaktformular verbinden

Das Kontaktformular ist ein wesentlicher Bestandteil jeder Website, da es Benutzernachrichten und -anfragen sammelt. Lassen Sie uns ein einfaches PHP-Kontaktformular erstellen und es mit Firebase verbinden, um Nachrichten zu erhalten. Dies umfasst die grundlegende Codierung, da Sie nur eine Vorstellung davon bekommen, wie Sie es anschließen können. Ich werde dieselbe Klasse User.php und ihre insert()-Funktion verwenden:

Der Designcode für das Kontaktformular lautet wie folgt:

<!DOCTYPE html>

<html>



<head>

   <title>Page Title</title>

</head>



<body>



   <link href="https://netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">

   <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.0/js/bootstrap.min.js"></script>

   <script src="//code.jquery.com/jquery-1.11.1.min.js"></script>

   <!-- Include the above in your HEAD tag -->



   <div class="container">

       <div class="row">

           <div class="col-md-6 col-md-offset-3">

               <div class="well well-sm">

                   <form class="form-horizontal" action="" method="post">

                       <fieldset>

                           <legend class="text-center">Contact us</legend>



                           <!-- Name input-->

                           <div class="form-group">

                               <label class="col-md-3 control-label" for="name">Name</label>

                               <div class="col-md-9">

                                   <input id="name" name="name" type="text" placeholder="Your name" class="form-control">

                               </div>

                           </div>



                           <!-- Email input-->

                           <div class="form-group">

                               <label class="col-md-3 control-label" for="email">Your E-mail</label>

                               <div class="col-md-9">

                                   <input id="email" name="email" type="text" placeholder="Your email" class="form-control">

                               </div>

                           </div>



                           <!-- Message body -->

                           <div class="form-group">

                               <label class="col-md-3 control-label" for="message">Your message</label>

                               <div class="col-md-9">

                                   <textarea class="form-control" id="message" name="message" placeholder="Please enter your message here..." rows="5"></textarea>

                               </div>

                           </div>



                           <!-- Form actions -->

                           <div class="form-group">

                               <div class="col-md-12 text-right">

                                   <button type="submit" name="submit" class="btn btn-primary btn-lg">Submit</button>

                               </div>

                           </div>

                       </fieldset>

                   </form>

               </div>

           </div>

       </div>

   </div>



</body>



</html>

Jetzt können Sie in der PHP-Datei die Namespaces und die Benutzerklasse initialisieren. Fangen Sie danach einfach die Eingaben ab und senden Sie sie an die Methode insert() von Firebase. Auch dies ist ein Basiscode, Sie können ihn gemäß Ihren Anforderungen und Validierungsregeln erweitern:

< ? php



require __DIR__.

'/vendor/autoload.php';

require 'Users.php';


use Kreait\ Firebase\ Factory;

use Kreait\ Firebase\ ServiceAccount;


$users = new Users();


if (isset($_POST['submit'])) {


   $name = $_POST['name'];

   $email = $_POST['email'];

   $message = $_POST['message'];


   $users - > insert([

       'name' => $name,

       'email' => $email,

       'message' => $message

   ]);



}

Schlussworte

Die Technologie entwickelt sich in rasantem Tempo. Um wettbewerbsfähig zu sein und im Rennen zu bleiben, müssen Sie sich mit den sich ändernden aktualisieren. Auch Datenbanken entwickeln sich häufig weiter, und wir sehen heute viele Dienste, die Echtzeit-Datenbanken bereitstellen und Daten in kürzester Zeit verarbeiten.

In diesem Firebase-PHP-Beispiel habe ich Ihnen gezeigt, wie Sie PHP in Firebase integrieren und mit einem Kontaktformular mit einer einfachen Klasse verbinden. Nach erfolgreicher Verbindung können Sie komplexere Anwendungsfälle erstellen, um Firebase-Dienste zu nutzen. Ich werde später auch mehr über Firebase mit PHP schreiben.

Häufig gestellte Fragen

F:Kann ich Firebase mit PHP verwenden?

A:Ja, Firebase bietet eine umfassende API zur Integration der Plattform in Ihre PHP-Projekte.

F:Kann ich PHP auf Firebase hosten?

A:Nein, Firebase unterstützt nur statisches Hosting und daher können Sie keine PHP-Skripts auf Firebase hosten.

F:Wie kann ich mit PHP Daten aus einer Firebase-Datenbank abrufen?

Um die Firebase-Daten abzurufen, müssen Sie zum Projektordner gehen und den folgenden Befehl ausführen:

php composer.phar require kreait/firebase-php

Als nächstes eine neue index.php in den Projektordner und fügen Sie die folgende Zeile oben in index.php hinzu:

require DIR.'/vendor/autoload.php';

Erstellen Sie als Nächstes eine JSON-Datei im Ordner

Bearbeiten Sie die index.php und stellen Sie eine Verbindung zur Datenbank her.