2016-05-31 28 views
5

sto usando:FirebaseApiNotAvailableException Firebase stoccaggio ripetutamente nel registro quando non in linea

compile "com.google.firebase:firebase-core:9.0.1" 
compile "com.google.firebase:firebase-storage:9.0.1" 

E questo è il codice che eseguo questo con il dispositivo offline (no internet):

StorageReference mStorageRef = FirebaseStorage.getInstance().getReferenceFromUrl([MY_URL]); 
mStorageRef.child("my_file.json").getBytes(Long.MAX_VALUE) 
.addOnSuccessListener(bla bla bla).addOnFailureListener(more bla bla) 

Ricevo questo messaggio ripetuto nel mio registro ogni secondo:

W/ExponenentialBackoff: network unavailable, sleeping. 
E/StorageUtil: error getting token java.util.concurrent.ExecutionException: com.google.firebase.FirebaseApiNotAvailableException: firebase-auth is not linked, please fall back to unauthenticated mode. 

Si tratta di un bug o comportamento previsto? So che se sono offline, non otterrò il file remoto, ma perché il codice Firebase tenta di eseguire il polling ogni secondo?

Nota: quando si ritorna in linea, esegue l'ascoltatore di successo/fallimento e termina il polling.

risposta

5

Ci scusiamo per il sovraccarico del registro. Il primo (W/ExponenentialBackoff) deve essere ridotto un po '(stiamo pianificando una migliore registrazione lato client in futuro), mentre il secondo (E/StorageUtil) può essere eliminato collegando Firebase Authentication: compile "com.google.firebase:firebase-auth:9.0.1".

+2

quando si dice "collegamento Firebase Authentication", significa solo aggiungere la dipendenza nel file gradle o devo fare qualcos'altro? Il file memorizzato di Firebase contiene regole per la lettura dell'accesso pubblico (nessuna autorizzazione di scrittura). Grazie per la risposta! –

+3

Tutto quello che devi fare è collegare la dipendenza per far sparire l'errore, anche se hai ragione che se hai tutto pubblico in lettura/scrittura non hai bisogno di autenticazione. In futuro lo rimuoveremo dai log. –

+0

@MikeMcDonald Ho lo stesso identico problema con l'OP e la dipendenza auth non l'ha risolto. Il listener onFailure() non viene chiamato se l'utente non è connesso a Internet, quindi come prenderemo quell'evento? – MScott

0

Servizi Google Play aggiornati a 9.0.2 La versione 9.0.2 di Google Play Services è ora disponibile. Questa versione corregge un problema noto con l'autenticazione Firebase in cui il FirebaseAuthApi non è disponibile su alcuni dispositivi. Un errore FirebaseApiNotAvailableException si verifica quando questi dispositivi tentano di utilizzare le API di autenticazione.