2016-12-31 131 views
0

我正在使用Firebase存儲來保存圖像/視頻/和音頻。我有兩個API密鑰:調試和發佈。當我在手機上運行應用程序時,一切正常。但是,當我生成釋放apk時,它有時可以正常工作,而其他時間則不會。Firebase存儲未顯示數據

任何想法可能會導致什麼?

FirebaseStorage storage = FirebaseStorage.getInstance(); 
     StorageReference storageRef = storage.getReferenceFromUrl("gs://manager-plus.appspot.com"); 
     StorageReference riversRef = storageRef.child("media/" + mediaDataList.get(i).name+SystemClock.elapsedRealtime()); 
     Uri uri; 
     if (mediaDataList.get(i).type == 1) 
      uri = Uri.fromFile(LoadBitmaps.saveBitmap(LoadBitmaps.decodeSampledBitmap(new File(mediaDataList.get(i).url), 100, 100))); 
     else uri = Uri.fromFile(new File(mediaDataList.get(i).url)); 
     uploadTask = riversRef.putFile(uri); 
     uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
      @Override 
      public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
        Long size = Long.parseLong(mediaDataList.get(i).size) + Prefs.getInstance(getApplicationContext()).getSize(); 
        if (Double.parseDouble(formatSize(size)) <= 2.0) { 
         Prefs.getInstance(getApplicationContext()).setSize(Long.parseLong(mediaDataList.get(i).size) + Prefs.getInstance(getApplicationContext()).getSize()); 
         DataOnline dataOnline = new DataOnline(); 
         dataOnline.link = String.valueOf(taskSnapshot.getDownloadUrl()); 
         dataOnline.type = mediaDataList.get(i).type; 
         dataOnline.name= mediaDataList.get(i).name; 
         dataOnline.save(); 
        } else { 
         Toast.makeText(getApplicationContext(), "Please subscribe to the paid version", Toast.LENGTH_SHORT).show(); 
        } 
       } 
      } 
     }) 
       .addOnFailureListener(new OnFailureListener() { 
        @Override 
        public void onFailure(@NonNull Exception exception) { 
         Toast.makeText(getApplicationContext(), exception.getMessage(), Toast.LENGTH_LONG).show(); 
        } 
       }) 
       .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() { 
        @Override 
        public void onProgress(UploadTask.TaskSnapshot taskSnapshot) { 
         //calculating progress percentage 
         double progress = (100.0 * taskSnapshot.getBytesTransferred())/taskSnapshot.getTotalByteCount(); 
         build.setProgress(100, (int) progress, false); 
         notificationManager.notify(101, build.build()); 
        } 
       }); 

感謝,

+0

你應該給你的發言提供更多信息,「有時它工作正常,其他時候根本不」,你得到什麼異常? – riggaroo

+0

我沒有收到任何例外。我正在從android studio運行應用程序,一切正常。我可以上傳並預覽雲端的所有內容。但是,當我生成已簽名的apk文件時,如果我在雲上上傳了一些內容並上傳了,並且我可以在存儲部分看到它,但是當我嘗試通過該應用預覽它時,它不會顯示。 –

+0

顯示您的代碼,如何管理用於檢索數據的節點 – Rahul

回答

1

這麼多的調試後,事實證明,這個問題是不是由於火力點;它實際上是由於active-android。我用來在本地緩存鏈接的庫。

因此,任何人都面臨這樣的問題: 請首先查看: developer.android.com/studio/build/shrink-code.html

在我來說,我用糖ORM代替activeandroid,和我問題解決了。

好運