2017-10-07 19 views
8

Tôi nhận được lỗi thời gian chạy này mà tôi không hiểu lý do đằng sau nó.com.google.firebase.firestore.FirebaseFirestoreException: Không thể tải tài liệu vì ứng dụng khách ngoại tuyến. Android

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

Dưới đây là mã trong Hoạt động của tôi mà cố gắng để lấy dữ liệu từ đám mây 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()); 
      } 
     } 
    }); 

Có điều gì tôi có thể làm gì về điều này?

+0

Tôi đang ở cùng một vấn đề . FirebaseFirestoreException.Code là "UNAVAILABLE". Và điều đó có nghĩa là "Dịch vụ hiện không khả dụng. Đây có thể là tình trạng tạm thời nhất và có thể được sửa chữa bằng cách thử lại với một sự hỗ trợ." Tôi không biết phải làm gì bây giờ ... – yoonhok

+1

Cùng một vấn đề, một số giải pháp? – Daniel

+0

Tôi thấy rằng lỗi này là nguyên nhân khi bạn không có kết nối hoặc khách hàng không có sẵn, perharps, tôi đang gặp một vấn đề với nó vì tôi nhận được lỗi này với một lực lượng đóng ngay cả khi tôi, quản lý ngoại lệ trong cùng một cách yo làm. Và đó là vui hơn, lỗi xảy ra luôn với truy vấn đầu tiên sau khi khôi phục internet của tôi. Ví dụ: 'Chế độ máy bay> Không làm gì> tắt Chế độ máy bay> chờ 20 giây> truy vấn gì đó> Không thể tải tài liệu vì ứng dụng khách ngoại tuyến.' Đây là lỗi từ API? Nó chỉ xảy ra trong Android, không phải trong IOS –

Trả lời

0

nếu bạn đang sử dụng rxjava sau đó nó wiil được đơn giản để bắt Throwable theo cách này:

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

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

Nếu không cố gắng bằng cách nào đó bắt nó trong lời hứa hoặc/và try-catch block

Các vấn đề liên quan