我不仅仅是困惑而且还尝试了几件事:我想将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();
}
答案 0 :(得分:0)
问题是:我试图从FireBase存储中下载更大的文件。该文件约有。 1.3 MB,需要将近3分钟。随着
.addOnCompleteListener(新 OnCompleteListener(){ @覆盖 public void onComplete(@NonNull Task task){ Log.i(标签,“完成”); FireBaseStorage.this.returnValue = returnValue; showValue(); }
可以返回一个合适的值,但效率不高。也许这不是FireBase存储的主要建议。
干杯, 比约恩