1

私のアプリケーションのバックグラウンドサービスからFirebase Storageにアップロードされた画像ファイルをダウンロードします。データベースが大き過ぎてストレージもあるため、サービスが必要です。そのため、Firebaseのすべてのデータをバックグラウンドでダウンロードして、UIの一貫性を維持したいのです。 Firebaseデータベースのすべてのデータが正常にダウンロードされました。しかし、Firebaseストレージからファイルをダウンロードするとエラーが表示されます。バックグラウンドサービスからFirebase Storageからファイルをダウンロードしてください。

CODE:

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) { 

    } 
}); 

ERROR:

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ストレージファイルをダウンロードすることが可能になりますか?はいの場合はどうですか?そうでない場合は、このシナリオのための代替手段がありますか? ご協力いただければ幸いです。ありがとう。

+0

http://stackoverflow.com/questions/37342403/firebaseapp-with-name-default-doesnt-exist? –

+0

あなたのアプリケーションマニフェストで、サービスを別のプロセスに宣言しましたか? –

答えて

1

"だから、Firebaseのすべてのデータをバックグラウンドでダウンロードして、UIの整合性を維持したい。

Firebase Storageはバックグラウンドスレッドですでにダウンロードを実行しています。メインスレッドでダウンロードを開始し、バックグラウンドでフェッチしてメインスレッドでコールバックを発生させます。これを行うために別のサービスを作成する必要はありません。

Realtime Databaseもこれを行います。 Firebaseの全体のポイントは、あなたがこの作業のいずれかを行うことを妨げることです:

関連する問題