簡體   English   中英

Firebase雲存儲中的Android訪問文件仍處於離線狀態

[英]Android access file in Firebase cloud storage whilst still offline

我需要顯示用戶在我的應用程序中拍攝的圖像。 我使用以下代碼將它們存儲在FirebaseFirestore

StorageReference imagesRef = storage.getReference("images/"+device.ref+"/"+timeStamp+".png");

Bitmap bitmap = BitmapFactory.decodeFile(output.toString());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] image = baos.toByteArray();

UploadTask uploadTask = imagesRef.putBytes(image);
uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
    @Override
    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
    }
});

這很好用,當我離線時又上網時,文件很好地自動上傳到Storage

但是,即使離線,我仍然需要能夠訪問此圖像。 我正在使用以下代碼正常訪問圖像:

FirebaseStorage storage = FirebaseStorage.getInstance();
StorageReference storageReference = storage.getReference().child("images/"+device+"/"+image.getFilename());

try {
    File localFile = File.createTempFile("images", "jpg");
    localFile.deleteOnExit();

    storageReference.getFile(localFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
        @Override
        public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
            Log.v("Download", "downloaded");
        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception exception) {
            // Handle any errors
        }
    });
} catch (IOException e) {
    e.printStackTrace();
}

但是,如果我在離線狀態下“上傳”圖像,則似乎無法找回圖像,這是否有原因,或者可以解決? 建議深表感謝。

Cloud Storage for Firebase沒有用於處理文件的“脫機”模式。 它不像實時數據庫和Firestore。 您只能在線上下載文件,而不能下載在線上尚未完成上傳的文件。 如果需要在脫機時處理文件,則應使用自己的本地緩存進行處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM