2017-07-07 4 views
2

Ich bin daran interessiert, Firebase korrekt zu abstrahieren, um es mit meiner App zu entkoppeln, falls ich in der Zukunft zurückschalten möchte.Wie man Firebase richtig abstrahiert

Im Moment habe ich eine einzige Klasse mit statischen Methoden, die auf die Echtzeit-Datenbank und Storage zugreifen. Ich rufe diese statischen Methoden in der gesamten App auf.

Ist dies der beste Weg, Firebase in einer Produktionsumgebung zu verwenden? Meine App ist in Swift geschrieben.

+0

Das ist wirklich unmöglich zu beantworten. Wenn Sie Ihre App so strukturieren, dass sie mit Firebase zusammenarbeitet, einer asynchronen Online-Datenbank, basiert der gesamte Codefluss darauf. Wenn Sie zu MySql wechseln, ist das ein völlig anderes Designmuster; nicht online (abhängig) und nicht asynchron (allgemein). Es wäre also eine komplette Neuschreiben der meisten Ihrer Datenbank-Interaktion (wir haben es getan und haben eine Menge Erfahrung aus erster Hand). – Jay

Antwort

0

Sie können eine Wrapper-Klasse

class YourWrapperClass: NSObject { 
} 

Import die Frameworks wie Firebase, die Sie mit diesem Wrapper verwenden möchten erstellen.

import Firebase 

Erstellen Sie die Methoden mit dem Einsatz von Completion Handler/Verschlüsse/Blöcke , dass es. Auf diese Weise können Sie die Wiederverwendbarkeit des Codes nutzen.

Immer wenn Sie die Verwendung von Firebase beenden möchten, müssen Sie nur den Aufruf von Methoden aus dieser Wrapper-Klasse beenden. & Implementieren Sie stattdessen alternative Methoden, die Sie aufrufen/verwenden möchten. Hoffe, das wird helfen.

0

Ich denke, der beste Weg hier ist struct mit statischen Mitgliedern für jeden Hauptknoten in Ihrem Firebase database und separate Modelle für jeden Hauptordner von Firebase storage. Es sollte wie folgt aussehen: API's. Sie können es in Zukunft ohne Probleme ändern.