我非常困惑,我尝试了几件事:我想从firebase下载一个纯文本文件,然后将其下载到我的本地临时文件空间中。这很好。现在,我想在外部类中使用此文件的整个文本。我该怎么做?
在这里我的代码段:
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();
}
问题是:我尝试从firebase存储中下载更大的文件。该文件有大约。1.3 MB,需要将近3分钟。用
.addoncompletelistener(新 oncompletelistener(){ @Override public void oncomplete(@nonnull任务){ log.i(标签,"完成"); firebasestorage.this.returnvalue = returnValue; showvalue(); }
可以返回适当的值,但不是那么有效。也许这不是Firebase存储的主要建议。
欢呼,bjoern