Firebase mit AngularJS verwenden

Firebase ist eine großartige Technologie, mit der wir Web-Apps ohne serverseitige Programmierung erstellen können, sodass die Entwicklung schneller und einfacher wird. In diesem Artikel werde ich Ihnen zeigen, wie Sie es zusammen mit AngularJS verwenden, um die bestmögliche Entwickler- und Benutzererfahrung zu erzielen.

Was ist so großartig an Firebase mit AngularJS? Nun, wenn Sie sehen, wie beide Technologien hergestellt werden, gibt es Ihre Antwort. Die bidirektionale Datenbindung von AngularJS funktioniert hervorragend mit Firebases "Daten nicht nur speichern, sondern synchronisieren." Philosophie.

Die Entwicklung ist schnell und die Benutzererfahrung ist großartig - sie geben einfach etwas ein und sind bereits gespeichert und für die anderen verbundenen Benutzer verfügbar.


Schritt 1: Einrichten der Datenbank

Beginnen wir mit dem Erstellen einer Datenbank. Wenn Sie noch keinen Account haben, erstellen Sie einen (Sie können sich mit GitHub anmelden!). Melden Sie sich dann an und erstellen Sie eine App, indem Sie das Formular ausfüllen und auf die Schaltfläche klicken.

Da wir später ein Facebook-Login verwenden, müssen Sie die Details Ihrer Facebook-App (d. H. Die App-ID und das App-Geheimnis) in den Optionen Ihrer Datenbank angeben. Klicken Sie unter Ihrem Firebase-App-Namen auf die Schaltfläche "Verwalten". Gehen Sie zur Registerkarte "Einfache Anmeldung", geben Sie die erforderlichen Informationen ein und aktivieren Sie "Aktiviert"..

Sie müssen außerdem Ihre Facebook-App konfigurieren, damit sie funktioniert. Der gesamte Prozess ist ziemlich schnell und wird auf der Firebase-Website beschrieben.


Schritt 2: Einrichten einer Winkelapplikation

Beginnen wir mit der Erstellung eines Basis-HTML- und JavaScript-Codes für unsere App. Wir erstellen eine einfache Chat-Anwendung, mit der sich Benutzer über Facebook anmelden können.

Erstellen Sie eine HTML-Datei und fügen Sie diese Markierung ein:

        
message.author: Nachrichtentext

Wie Sie sehen, enthält es ein paar Skripte, die wir brauchen. Natürlich gehört dazu firebase.js und eckig.js, und wir brauchen auch firebase-simple-login.js für die Facebook-Authentifizierung. anglefire.min.js enthält das AngularFire-Modul, das die Arbeit mit Firebase erheblich vereinfacht.

Nun erstellen Sie die eckig.app.js Datei, in der wir unsere Anwendungslogik ablegen werden. Beginnen wir mit der Deklaration des Hauptmoduls, simpleChat:

var app = angle.module ('simpleChat', ['firebase']);

Wie Sie sehen, ist die einzige Abhängigkeit die Feuerbasis Modul von AngularFire.


Schritt 3: Einfaches Login

Lassen Sie uns nun den Code erstellen, mit dem sich Benutzer bei Facebook anmelden können. Da unsere App so klein ist, haben wir dort nur einen Controller: MessagesCtrl.

app.controller ('MessagesCtrl', ["$ scope", "$ firebase"), Funktion ($ scope, $ firebase) 

Das $ firebase Mit dieser Funktion können wir eine Verbindung zur Firebase-Datenbank herstellen, und $ firebaseSimpleLogin wird das Login-Zeug verwalten.

Wir werden eine brauchen Firebase So lassen Sie uns es erstellen:

var ref = new Firebase ("https://tutssampleapp.firebaseio.com/");

Natürlich ersetzen "Ihre-eindeutige-URL" mit der URL Ihrer Datenbank. Bereiten Sie nun das Login-Objekt mit vor $ firebaseSimpleLogin und das ref wir haben gerade erstellt:

$ scope.login = function () ref.authWithOAuthPopup ("facebook", Funktion (Fehler, authData) ); 

Und das ist so ziemlich alles, um den Login-Status zu bekommen. Wenn der Benutzer angemeldet ist, wird die $ scope.loginObj.user Variable enthält ein Objekt mit den Daten des Benutzers; sonst wird es sein Null.

Fügen Sie jetzt eine

mit unserem Controller und einer Schaltfläche, mit der sich der Benutzer am Körper Ihrer Seite anmelden kann:

message.author: Nachrichtentext

Wir haben das benutzt ngHide Anweisung zum Ausblenden der Schaltfläche, wenn der Benutzer angemeldet ist $ scope.login () Die Methode ruft einfach eine Methode mit dem gleichen Namen auf $ scope.loginObj:

$ scope.login = function () ref.authWithOAuthPopup ("facebook", Funktion (Fehler, authData) ); 

Der einzige Parameter, den wir verwendet haben, ist der Name des Anbieters, mit dem der Benutzer angemeldet wird. Sie können Ihre App jetzt testen und die Anmeldeschaltfläche sollte beim Anmelden ausgeblendet werden.


Schritt 4: Anzeigen der Meldungen

Wie zu erwarten, wird dies auch ziemlich einfach sein. Zuerst bereiten wir das HTML vor. Wir werden verwenden ngRepeat alle Nachrichten durchlaufen und anzeigen:

message.author: Nachrichtentext

Jetzt müssen wir den Controller aktualisieren. Erstellen Sie die obj Variable, die das von Firebase zurückgegebene Objekt enthält:

var obj = $ firebase (ref). $ asObject ();

Das $ asObject () Diese Methode konvertiert die gesamte Referenz mit einigen nützlichen Methoden in ein Javascript-Objekt. Die, die wir verwenden werden, heißt .$ bindTo () und ermöglichen uns die Erstellung einer Dreiwege-Bindung (Firebase-AngularJS-DOM):

obj. $ bindTo ($ scope, "data");

Wir stellen $ scope als erster Parameter und den Namen einer Eigenschaft als zweiten. Das verbindliche Objekt wird in angezeigt $ scope unter diesem Namen (als $ scope.data in diesem Beispiel).

Und das ist alles was Sie brauchen, um die Meldungen anzuzeigen! Natürlich, es sei denn, Sie haben etwas in die Mitteilungen Array in Ihrer Datenbank, werden Sie nichts sehen, wenn Sie Ihre App jetzt ausführen.


Schritt 5: Nachrichten senden

Dieser wird noch schneller sein. Fügen wir unseren Controllern einen Eingang hinzu div, damit unsere Benutzer Nachrichten eingeben können:

Der Wert der Eingabe wird an das gebunden $ scope.newMessage.text Variable und ihre keyup Ereignis wird die feuern $ scope.handleKeyup () Ruf zurück. Beachten Sie, dass wir bestanden haben $ event als Parameter, da wir prüfen müssen, ob der Benutzer die Eingabetaste gedrückt hat.

Definieren wir das $ scope.handleKeyup () Funktion:

$ scope.handleKeyup = Funktion handleKeyup (e) 

Zuerst prüfen wir, ob die Eingabetaste gedrückt wurde:

if (e.keyCode == 13) 

In diesem Fall fügen wir den Anzeigenamen des Benutzers zum hinzu $ scope.newMessage Objekt, aktualisieren Sie die $ scope.data.messages Array und setzen Sie das zurück $ scope.newMessage Objekt:

$ scope.newMessage.author = ref.getAuth (). facebook.displayName; ref.child ("messages"). push ($ scope.newMessage); $ scope.newMessage = ;

Sie müssen auch das initialisieren $ scope.newMessage Objekt:

$ scope.newMessage = ;

Das ist es - öffnen Sie Ihre App in zwei Browsern (damit Sie zwei Facebook-Konten verwenden können) und probieren Sie es aus! Bitte hinterlassen Sie wie üblich Fragen, Kommentare und allgemeines Feedback im untenstehenden Formular.