2012-07-12 14 views

Odpowiedz

5

Firebase nie generuje obecnie żadnych błędów, które mogą być spowodowane przez programistów (poza wyjątkami, które są zgłaszane w przypadku złych danych wejściowych). Obecnie operacje w Firebase gwarantują sukces lub nigdy nie powodują zdarzeń. W przypadku problemów z łącznością sieciową Firebase po prostu nie będzie wyzwalać zdarzeń. Jest to oczekiwane zachowanie, ponieważ Firebase jest przeznaczony do pracy w trybie offline i automatycznie przywróci Ci szybkość po przywróceniu połączenia.

Należy pamiętać, że w przyszłości będziemy zgłaszać błędy związane z naruszeniami bezpieczeństwa i prawdopodobnie innymi rodzajami błędów. Interfejs API do przechwytywania i obsługi tych błędów nie został jeszcze napisany.

+0

ok, więc spróbuj złapać wokół deklaracji z danych wejściowych użytkownika ... Chyba mogę poradzić nieudaną operację (który nie zgłosi błąd) wysyłanie zamknięć timeout po określonym czasu - jak długo to powinno być, nie jestem pewien ... – Reinsbrain

1

Musisz utworzyć funkcję auth, która obsługuje błędy. Zobacz świetny przykład poniżej 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/