2016-12-31 2 views
0

Ich verwende Firebase-Speicher, um Bilder/Videos/und Audios zu speichern. Ich habe beide API-Schlüssel: debuggen und freigeben. Wenn ich die Anwendung auf dem Telefon starte, funktioniert alles gut. Allerdings, wenn ich die Release-APK erzeuge, funktioniert es manchmal gut und manchmal nicht.Firebase-Speicher zeigt keine Daten an

Irgendwelche Ideen, was könnte das verursachen?

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()); 
        } 
       }); 

Danke,

+0

Sie sollten mehr Informationen zu Ihrer Aussage liefern „manchmal funktioniert es gut und andermal es einfach nicht“, welche Ausnahmen erhalten Sie? – riggaroo

+0

Ich bekomme keine Ausnahmen. Ich benutze die Anwendung von Android Studio funktioniert alles perfekt. Ich kann alles in der Cloud hochladen und in der Vorschau anzeigen. Wenn ich jedoch die signierte Apk erzeuge, wenn ich etwas in die Cloud hochlade, wird es hochgeladen und ich kann es im Speicherbereich sehen. Aber wenn ich versuche, eine Vorschau über die App zu sehen, wird es nicht angezeigt. –

+0

Zeigen Sie Ihren Code, wie Sie Knoten zum Abrufen von Daten verwalten – Rahul

Antwort

1

Nach so viel Debugging, es stellte sich heraus, dass das Problem nicht durch Feuerbasis war; Es war eigentlich wegen Active-Android. Eine Bibliothek, mit der ich Links lokal zwischenspeichern konnte.

daher für alle, mit diesem Problem konfrontiert: bitte zuerst Kontrolle: developer.android.com/studio/build/shrink-code.html

In meinem Fall habe ich Zucker ORM statt activeandroid verwendet, und meine Problem wurde gelöst.

Viel Glück