2017-10-07 4 views
8

Otrzymuję ten błąd czasu wykonywania, którego nie rozumiem powodu.com.google.firebase.firestore.FirebaseFirestoreException: Nie można pobrać dokumentu, ponieważ klient jest w trybie offline. Android

com.google.firebase.firestore.FirebaseFirestoreException: Failed to get document because the client is offline.

Poniżej znajduje się kod w mojej działalności, która próbuje pobrać dane z chmurą FireStore

DocumentReference docRef = db.collection("room-id-1").document("participan-name-1"); 
    docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() { 
     @Override 
     public void onComplete(@NonNull Task<DocumentSnapshot> task) { 
      if (task.isSuccessful()) { 
       DocumentSnapshot document = task.getResult(); 
       if (document != null) { 
        Log.d(TAG, "DocumentSnapshot data: " + task.getResult().getData()); 
        userData.registerUserToHotspot(roomId_str, participantName_str); 
       } else { 
        Log.d(TAG, "No such document"); 
       } 
      } else { 
       Log.d(TAG, "get failed with ", task.getException()); 
      } 
     } 
    }); 

Czy jest coś, co mogę z tym zrobić?

+0

jestem w tym samym problemem . FirebaseFirestoreException.Code jest "NIEDOSTĘPNY". Oznacza to, że "Usługa jest obecnie niedostępna. Jest to najprawdopodobniej stan przejściowy i można ją poprawić, ponawiając próbę z opóźnieniem". Nie wiem, co powinienem teraz zrobić ... – yoonhok

+1

Ten sam problem, jakieś rozwiązanie? – Daniel

+0

Widziałem, że ten błąd jest przyczyną, gdy nie masz połączenia lub klient jest niedostępny, perharps, mam problem z tym, ponieważ otrzymuję ten błąd z Force Close, nawet gdy jestem, zarządzając wyjątkiem w tym samym sposób, zrób to. A co jest zabawniejsze, błąd pojawia się zawsze przy pierwszym zapytaniu po odzyskaniu mojego internetu. Przykład: 'Tryb samolotowy> Nic nie rób> wyłącz Tryb samolotowy> poczekaj 20 s> zapytaj o coś> Nie udało się uzyskać dokumentu, ponieważ klient jest w trybie offline." To jest błąd z interfejsu API? To się dzieje tylko w Androidzie, a nie w IOS –

Odpowiedz

0

jeśli używasz rxjava następnie wiil być proste do połowu Throwable ten sposób: blok

RxFirestore.getDocument(FirebaseFirestore.getInstance() 
    .collection("info") 
    .document("app")) 
    .subscribeOn(Schedulers.io()) 
    .subscribe(snapshot -> { 

    }, throwable -> Timber.e(throwable)) 

przeciwnym razie spróbuj jakoś złapać go w obietnicy lub/i try-catch

Powiązane problemy