Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从后台服务从Firebase存储下载文件_Android_Service_Firebase_Background Process_Firebase Storage - Fatal编程技术网

Android 从后台服务从Firebase存储下载文件

Android 从后台服务从Firebase存储下载文件,android,service,firebase,background-process,firebase-storage,Android,Service,Firebase,Background Process,Firebase Storage,我想从应用程序的后台服务下载上传到Firebase存储上的图像文件。我需要服务,因为数据库太大,存储空间也太大。这就是为什么,我想在后台从Firebase下载所有数据,以保持UI的一致性。已成功下载Firebase数据库中的所有数据。但从Firebase存储下载文件时出错 代码: StorageReference httpsReference = FirebaseStorage.getInstance().getReferenceFromUrl(url); httpsReference.get

我想从应用程序的后台服务下载上传到Firebase存储上的图像文件。我需要服务,因为数据库太大,存储空间也太大。这就是为什么,我想在后台从Firebase下载所有数据,以保持UI的一致性。已成功下载Firebase数据库中的所有数据。但从Firebase存储下载文件时出错

代码:

StorageReference httpsReference = FirebaseStorage.getInstance().getReferenceFromUrl(url);

httpsReference.getBytes(1024 * 1024).addOnSuccessListener(new OnSuccessListener<byte[]>() {
    @Override
    public void onSuccess(byte[] bytes) {
        Log.v("log_tag", "onDataChange onSuccess icon received");
    }

}).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception e) {

    }
});
java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn't exist.
at com.google.firebase.FirebaseApp.getInstance(Unknown Source)
at com.google.firebase.FirebaseApp.getInstance(Unknown Source)
at com.google.firebase.storage.FirebaseStorage.getInstance(Unknown Source)                      at in.co.cybercom.memorymatch.misc.WebServiceCommon.downloadImageSet(WebServiceCommon.java:133)
atin.co.cybercom.memorymatch.misc.WebServiceCommon.access$400(WebServiceCommon.java:49)
atin.co.cybercom.memorymatch.misc.WebServiceCommon$1.onDataChange(WebServiceCommon.java:91)
at com.firebase.client.Query$1.onDataChange(Query.java:158)
atcom.firebase.client.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:45)
at com.firebase.client.core.view.DataEvent.fire(DataEvent.java:45)
at com.firebase.client.core.view.EventRaiser$1.run(EventRaiser.java:38)
at android.os.Handler.handleCallback(Handler.java:739)                                       at android.os.Handler.dispatchMessage(Handler.java:95)                                          at android.os.Looper.loop(Looper.java:145)                                              at android.app.ActivityThread.main(ActivityThread.java:5951)                                  at java.lang.reflect.Method.invoke(Native Method)                                          at java.lang.reflect.Method.invoke(Method.java:372)                                           atcom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)                                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195) 
请让我知道是否可以在后台服务中下载Firebase存储文件?如果是,那怎么办?如果没有,那么这种情况下还有其他选择吗? 任何帮助都将不胜感激。谢谢。

“这就是为什么我想在后台从Firebase下载所有数据,以保持我的UI一致。”

Firebase存储已经在后台线程上执行下载,正是出于这个原因——您可以在主线程上启动下载,我们将在后台获取,然后在主线程上发起回调。您没有理由必须创建单独的服务来执行此操作


实时数据库也可以做到这一点。Firebase的全部目的是防止您必须执行以下任何工作:)

?在您的应用程序清单中,您是否声明您的服务处于单独的流程中?