Frage Wie können oder können Sie Fehler effektiv mit Firebase umgehen?


Ich habe die Firebase-Dokumentation gelesen und es wird sehr viel asynchroner Code verwendet. Ich wollte wissen, ob Firebase Fehler wirft und / oder Fehlerdaten in den Callbacks weitergibt. Soweit ich das beurteilen kann, werden sie in der Dokumentation nicht erwähnt. Vielen Dank im Voraus für die Beratung


7
2017-07-12 18:54


Ursprung


Antworten:


Firebase erzeugt momentan keine Fehler, die den Entwickler beeinträchtigen (außerhalb von Ausnahmen, die für fehlerhafte Eingaben ausgegeben werden). Momentan wird garantiert, dass Firebase-Vorgänge entweder erfolgreich sind oder nie Ereignisse auslösen. Bei Problemen mit der Netzwerkverbindung löst Firebase keine Ereignisse aus. Dies ist ein erwartetes Verhalten, da Firebase für den Offline-Modus ausgelegt ist und Sie automatisch auf den neuesten Stand bringen, sobald eine Verbindung wiederhergestellt wurde.

Beachten Sie, dass wir in Zukunft Fehler für Sicherheitsverletzungen und möglicherweise andere Fehlertypen auslösen werden. Die API zum Abfangen und Behandeln dieser Fehler wurde noch nicht geschrieben.


5
2017-07-13 00:37



Sie müssen eine Auth-Funktion erstellen, die die Fehler behandelt. Ein gutes Beispiel finden Sie unten in der jsFiddle.

function initAuth(ref) {
        return new FirebaseSimpleLogin(ref, function (err, user) {
            // if there is an error then display it 
            if (err) {
                displayError(err);
            } else if (user) {
                // we only want to log people in through the email/password provider
                if( user.provider !== 'password' ) {
                   auth.logout();   
                }
                else {
                    // logged in!
                    uid = user.uid;
                    // save the user to our firebase
                    ref.child(user.uid).set({
                        id: user.id,
                        uid: user.uid,
                        email: user.email
                    });  
                    // switch over the the user info screen
                    switchView('userInfo');
                }
            } else {
                // logged out!
                console.log('not logged in');
            }
        });
    }

http://jsfiddle.net/firebase/wPBj5/embedded/result,js/


1
2017-08-02 21:38