2016-05-31 8 views
5

내가 사용 :중포 기지 저장 FirebaseApiNotAvailableException 오프라인

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

그리고 이것이 내가 장치와 함께 오프라인 (어떤 인터넷을)이 실행되지 코드입니다 :

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

이 메시지가 내 로그에 반복 표시됩니다. 초마다 :

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. 

버그입니까? 예상되는 동작입니까? 오프라인 상태라면 원격 파일을 가져올 수 없지만 firebase 코드가 매초마다 폴링을 시도하는 이유는 무엇입니까?

참고 : 온라인 상태가되면 다시 성공/실패 리스너를 실행하고 폴링을 완료합니다.

답변

5

죄송합니다. 로그 과부하입니다. 첫 번째 파일 (W/ExponenentialBackoff)은 꽤 잘려 나갈 필요가 있습니다. (앞으로 더 나은 클라이언트 측 로깅을 계획하고 있습니다), 두 번째 파일 (E/StorageUtil)은 Firebase 인증 : compile "com.google.firebase:firebase-auth:9.0.1"을 링크하여 정리할 수 있습니다.

+2

"Firebase 인증 연결 중"이라고 말하면, 그냥 gradle 파일에 의존성을 추가한다는 의미입니까, 아니면 다른 것을해야합니까? 내 Firebase 저장 파일에는 공개 액세스 (쓰기 권한 없음) 읽기 규칙이 있습니다. 응답 주셔서 감사합니다! –

+3

당신이해야 할 일은 오류를 없애기 위해 의존성을 연결하는 것입니다. 모든 것이 공개되어 있다면 당신은 인증이 필요하지 않습니다. 앞으로는 로그에서 제거 할 것입니다. –

+0

@MikeMcDonald OP와 똑같은 문제가 있습니다. 인증 의존성으로 문제가 해결되지 않았습니다. 사용자가 인터넷에 연결되어 있지 않으면 onFailure() 수신기가 호출되지 않으므로 해당 이벤트를 어떻게 알 수 있습니까? – MScott

0

Google Play 서비스가 으로 업데이트되었습니다. 9.0.2 Google Play 서비스 버전 9.0.2를 사용할 수 있습니다. 이 릴리스는 Firebase Authentication과 관련된 알려진 문제를 수정합니다. 일부 장치에서는 FirebaseAuthApi을 사용할 수 없습니다. A FirebaseApiNotAvailableException 해당 장치가 인증 API를 사용하려고 시도하면 오류이 발생합니다.