Um es ganz einfach auszudrücken: Firebase ist ein externer Datenbankdienst. Sie definieren sich als:
„Eine Reihe von Back-End-Cloud-Computing-Diensten und Anwendungsentwicklungsplattformen, die von Google bereitgestellt werden“. Weitere Informationen finden Sie hier: https://firebase.google.com/
Neben Datenbankdiensten bieten sie auch Authentifizierungs- und Integrationsdienste für verschiedene Anwendungen an. Unterstützte Anwendungen und Programmiersprachen sind: Flutter, Dart, C++, Android, IOS, JavaScript , Unity-Engines und Java.
Warum ist das alles wichtig? Weil wir Firebase bei der Entwicklung unserer Anwendung verwendet haben. Darüber hinaus haben wir den beliebtesten Dienst genutzt: den Datenbankdienst.
Wir fragen uns vielleicht, warum überhaupt Firebase verwenden? Firebase ist einfach . Wenn Sie ein Entwicklungsprojekt durchführen, bei dem Sie Benutzerdaten in bestimmten Formen speichern müssen, benötigen Sie eine Datenbank. Dies kann dazu dienen, die Benutzerdaten für spätere Analysen, Datenänderungen, Datenschutz, Datenwiederherstellung usw. zu speichern. Dies gilt für Unternehmen, Einzelpersonen und Organisationen, sogar für mehr Gruppen.
Nachdem wir nun wissen, warum wir Datenbanken verwenden, müssen wir die nächste Frage stellen. Welche Datenbanktypen sind für uns besser?
Lassen Sie uns diese Unterschiede untersuchen. Während wir das tun, versuchen Sie zu erraten, zu welchem Datenbanktyp Firebase gehört ;) .
Zentralisierte Datenbanken : Hierbei wird die Datenbank, die für die Anwendung verwendet wird, an einem Ort gespeichert, zu dem die Personen, die sie verwenden, direkten physischen Zugriff haben. Sie können die Datenbank auch nach Belieben bearbeiten, verbessern, aktualisieren und rekonstruieren. Im Wesentlichen haben Sie das vollständige Eigentum und die Bearbeitbarkeit der Datenbank in jeder Hinsicht physisch, intern und in Bezug auf die digitale Infrastruktur.
Dezentrale Datenbanken : Dies ist das komplette Gegenteil von zentralisierten Datenbanken. Es handelt sich um web3-basierte Datenbanken. Dabei handelt es sich um Datenbanken, bei denen die Speichergeräte auf verschiedene Computergeräte verteilt sind. Nur bestimmte Organisationen können die interne Funktionalität der Datenbank anpassen und verbessern. Ihre Anwendungsfälle sind begrenzt. Sie werden hauptsächlich für Web3-Apps, Token und zum Hosten anderer Web3-Produkte entwickelt.
Weitere Informationen zu Web3-Datenbanken, die diese ausführlicher untersuchen, finden Sie hier: https://www.makeuseof.com/what-is-web3-storage-how-does-it-work/
DBaaS : Dieser Datenbanktyp wird oft als „serverlos“ bezeichnet. Denn bei diesem Datenbanktyp, der zentralen Datenbanken ähnelt, behalten Sie die Datenbank nicht lokal in Ihrer Nähe. Die Datenbank wird von einem Drittunternehmen gehostet und ermöglicht Ihnen die Anpassung bestimmter digitaler Infrastrukturen Ihrer Datenbank, mehr jedoch nicht. Das Hauptverkaufsargument dieser Datenbank ist die Kosteneffizienz. Anstatt Geld für die Erstellung Ihrer eigenen zentralen Datenbank zu vergeuden, entscheiden Sie sich stattdessen dafür, den Aufwand extern zu vergeben. Jemand erledigt die schmutzigen Bauarbeiten und Sie können von ihm mieten, um seine Datenbankdienste zu nutzen. Sie erhalten unterschiedliche Funktionen für unterschiedliche Gehaltsstufen.
Ich habe mich für DBaaS entschieden. Firebase ist ein DBaaS. Ich habe mich aufgrund der Kosteneffizienz dieses Datenbankmodells dafür entschieden.
Ich mache eine App. Eine der Funktionen der App ist die Möglichkeit, Benutzer zu registrieren, anzumelden und abzumelden. Wie Sie im Bild oben sehen können, habe ich für die Anmeldung einen Testbenutzernamen und ein Testpasswort erstellt. Sobald ich auf die Schaltfläche „Anmelden“ geklickt habe, sendete die App die Informationen an meine relevante Datenbank. Die in Firebase gehostete Datenbank. Beim Versuch, mich anzumelden, blieb ich auf derselben App-Seite und es änderte sich nichts. Nach Überprüfung der Benutzer in meiner Firebase wurde zu diesem Zeitpunkt kein neuer Benutzer registriert. Das bedeutet, dass mein Benutzer nicht registriert war.
Wir benötigen unsere App, um neue Benutzer zu erkennen. In dieser Phase wird sich ein Entwickler seinen Code ansehen und sich möglicherweise die Application Processing Interface (API) für Firebase ansehen und wie er sie in seinem Code aufgerufen hat. Sie werden sich auch die Variablen ansehen, die Benutzer definieren, um sicherzustellen, dass sie richtig definiert sind und die Funktionalität gut ist. Sie können auch prüfen, ob irgendetwas, das die Verbindung zur Datenbank stört oder mit ihr interagiert, aktualisiert werden muss, etwa die verwendeten Bibliotheken oder der Firebase-API-Link selbst. Man kann alle diese Schritte oder noch mehr ausführen, um die Lösung für die Datenbank zu finden, ohne unsere Aufrufe zu ignorieren. Es gibt ein Problem.
Nichts davon traf auf mich zu . Warum ist das so?
Der Grund dafür, dass ich keine dieser Standard-Debugging-Praktiken durchführen musste, liegt darin, dass ich kurz vor diesem neuen Versuch neue Benutzer in der Datenbank registrieren konnte. Innerhalb einer Woche hörte dies plötzlich auf. Ohne irgendeine Änderung meines Codes funktionierte der Prozess, der zuvor funktionierte, nicht mehr. Das hat mich sehr verwirrt und ich habe meinen API-Aufruf-Link wiederholt ausgetauscht und in verschiedene Bereiche eingefügt. Ich habe meine Referenzaufrufe für meine gewohnten Bibliotheken und meine verschiedenen Dateiaufrufe organisiert. Ich habe sogar online nachgefragt, ob der Datenbankdienst von Firebase ausgefallen sei. Dies war nicht der Fall. Ich war gerade dabei, mit Standard-Debugging-Praktiken zu beginnen … Dann habe ich endlich die Lösung gefunden ! Es war die ganze Zeit in meinen E-Mails.
Ja, meine E-Mail hatte die ganze Zeit die Lösung! Als ich nach Tagen der Stagnation zu diesem Thema meine E-Mails überprüfte, fand ich eine Benachrichtigungs-E-Mail von Firebase. Firebase hat mich darüber informiert, dass mein Datenbankzugriff unterbrochen wurde. Dies lag daran, dass ich während der Einrichtung der Firebase-Datenbank meinen Datenbankzugriff aus Sicherheitsgründen zu einem bestimmten Zeitpunkt gesperrt hatte. Ich hatte diese Regel vergessen, die ich für mich selbst hinzugefügt hatte. Ich hatte das von mir angegebene Datum vergessen. Als ich unterbrochen wurde, bemerkte ich es daher erst, als ich meine E-Mails überprüfte. Unten können wir sehen, dass ich die Datenbank so eingestellt habe, dass sie mich am 12. März 2023 abschaltet.
Um dieses Problem zu beheben, musste ich lediglich die Regeln aktualisieren, um den Zeitrahmen für meinen „Stichtag“ zu verlängern. Wie hier zu sehen:
Um das Problem zu lösen, habe ich die nächste Frist auf den 29. Juni gesetzt. Auf diese Weise werde ich bis zu diesem Stichtag keine weiteren Unterbrechungen erleben.
Man könnte fragen: „ Warum stellen Sie es nicht auf ein paar Jahre oder mehrere Monate in der Zukunft ein, damit es Sie nicht stört?“ gute Frage. Ich werde das nicht tun, weil ich das ganze Jahr über ein paar vierteljährliche Erinnerungen haben möchte, die mich an diese Abhängigkeit erinnern. Ich möchte mir keine langfristige Frist setzen und es dann wieder vergessen und ein Jahr später in der gleichen Situation stecken bleiben. Wenn ich es mir immer wieder bewusst mache, denke ich ständig an alle Faktoren, die sich auf die App-Entwicklung auswirken können und mir bei der Weiterentwicklung des Entwicklungsprozesses hilfreich sein werden. Man könnte dies eine Lernpräferenz nennen.
Wir können sehen, dass das Firebase-Authentifizierungsverfahren sogar ein Benutzer-ID-Token als spezielle Benutzerkennung zurückgibt, sodass wir definitiv wissen, dass es registriert ist.
Entwicklung macht Spaß, aber wir müssen uns immer der kleinen Dinge bewusst sein. Wenn es Probleme mit der Anwendung gibt, liegt dies meist an unserem eigenen Codefehler. Manchmal entstehen Probleme jedoch nicht einmal durch unseren Code. Es könnte wirklich etwas so Einfaches wie ein erforderliches Update oder in diesem Fall eine einfache Überprüfung der Datenbankregeln sein.