2017-09-13 95 views
0

我非常困惑,我嘗試了幾件事:我想從FireBase下載一個純文本文件到我的本地臨時文件空間。這工作完美。現在我想在我的外部類中使用此文件的全部文本。 我該怎麼做?Android:FireBase存儲:將json文件作爲臨時文件下載

這裏我的代碼片段:

private void getFireBaseStorage() { 
    FirebaseStorage storage = 
      FirebaseStorage.getInstance(); 
    StorageReference storageRef = 
      storage.getReferenceFromUrl("gs://URL") 
        .child("filename.json"); 
    try { 
     final File localFile = File.createTempFile("file", "json"); 
     storageRef.getFile(localFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() { 
      @Override 
      public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) { 
       Log.i("FireBase", "File is present " + Long.toString(localFile.length())); 
       try { 
        FileReader fr = new FileReader(localFile); 
        BufferedReader br = new BufferedReader(fr); 
        String sCurrentLine; 
        while ((sCurrentLine = br.readLine()) != null) { 
         mJSONReturnValue += sCurrentLine; 
        } 
        System.out.println(mJSONReturnValue); 
       } catch (IOException exception) { 
        exception.printStackTrace(); 
       }  
      } 
     }).addOnFailureListener(new OnFailureListener() { 
      @Override 
      public void onFailure(@NonNull Exception exception) { 
       Log.i("FireBase", "File is not there"); 
      } 
     }); 
     // Log.i("FireBase", result.()); 

    } catch (IOException ioexception) { 
     ioexception.printStackTrace(); 
    } 

回答

0

的問題是:我想從火力存儲下載一個更大的文件。該文件大約。 1.3 MB,需要將近3分鐘。隨着

.addOnCompleteListener(新 OnCompleteListener(){ @覆蓋 公共無效的onComplete(@NonNull任務的任務){ Log.i(TAG, 「結束」); FireBaseStorage.this.returnValue =的returnValue ; showValue();}

它可能返回正確的值,但它不是那麼有效也許這不是主要的建議火力存儲的

乾杯, Bjoern