2016-12-31 76 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,和我问题解决了。

好运