android–Firebase存储10.2.6– >无法打开结果流

android–Firebase存储10.2.6– >无法打开结果流,第1张

概述我有新的Firebase存储SDK,即10.2.6.当我尝试下载文件时,我收到此错误.以前在10.2.1我没有问题.I/DynamiteModule:Consideringlocalmodulecom.google.android.gms.firebasestorage:0andremotemodulecom.google.android.gms.firebasestorage:6I/DynamiteModule:Selected

我有新的Firebase存储SDK,即10.2.6.当我尝试下载文件时,我收到此错误.以前在10.2.1我没有问题.

I/DynamiteModule: ConsIDering local module com.Google.androID.gms.firebasestorage:0 and remote module com.Google.androID.gms.firebasestorage:6I/DynamiteModule: Selected remote version of com.Google.androID.gms.firebasestorage, version >= 6V/FA: Activity resumed, time: 148646549D/deBUGStorageListener: onSuccess: -1D/Openglrenderer: endAllActiveAnimators on 0x7219a63c00 (rippledrawable) with handle 0x721ad62fe0W/System.err: java.io.IOException: Could not open resulting stream.W/System.err:     at com.Google.firebase.storage.StreamDownloadTask.zzadq(UnkNown Source)W/System.err:     at com.Google.firebase.storage.StreamDownloadTask.zza(UnkNown Source)W/System.err:     at com.Google.firebase.storage.StreamDownloadTask.zzads(UnkNown Source)W/System.err:     at com.Google.firebase.storage.StreamDownloadTask.call(UnkNown Source)W/System.err:     at com.Google.firebase.storage.StreamDownloadTask$zza.zzadu(UnkNown Source)W/System.err:     at com.Google.firebase.storage.StreamDownloadTask$zza.read(UnkNown Source)W/System.err:     at java.io.BufferedinputStream.read1(BufferedinputStream.java:273)W/System.err:     at java.io.BufferedinputStream.read(BufferedinputStream.java:334)W/System.err:     at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:287)W/System.err:     at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:350)W/System.err:     at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:179)W/System.err:     at java.io.inputStreamReader.read(inputStreamReader.java:184)W/System.err:     at java.io.Reader.read(Reader.java:140)W/System.err:     at org.apache.commons.io.IoUtils.copyLarge(IoUtils.java:2001)W/System.err:     at org.apache.commons.io.IoUtils.copyLarge(IoUtils.java:1980)W/System.err:     at org.apache.commons.io.IoUtils.copy(IoUtils.java:1957)W/System.err:     at org.apache.commons.io.IoUtils.copy(IoUtils.java:1907)W/System.err:     at org.apache.commons.io.IoUtils.toString(IoUtils.java:778)W/System.err:     at org.apache.commons.io.IoUtils.toString(IoUtils.java:759)W/System.err:     at eu.long1.jwnotes.services.ReceiveService.lambda$handleDownload$ReceiveService(ReceiveService.java:186)W/System.err:     at eu.long1.jwnotes.services.ReceiveService$$Lambda.onResult(UnkNown Source)W/System.err:     at eu.long1.jwnotes.helpers.firebase.StorageListener.doInBackground(StorageListener.java:48)W/System.err:     at eu.long1.jwnotes.helpers.firebase.StorageListener.doInBackground(StorageListener.java:45)W/System.err:     at androID.os.AsyncTask.call(AsyncTask.java:305)W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)W/System.err:     at androID.os.AsyncTask$SerialExecutor.run(AsyncTask.java:243)W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)W/System.err:     at java.lang.Thread.run(Thread.java:761)

在崩溃之前,我得到了这个信息:

I/DynamiteModule: ConsIDering local module com.Google.androID.gms.firebasestorage:0 and remote module com.Google.androID.gms.firebasestorage:6I/DynamiteModule: Selected remote version of com.Google.androID.gms.firebasestorage, version >= 6

编辑:

就是这儿:

private voID handleDownload(final String key, ArrayList<String> locations, ArrayList<Talk> talks) {        for (String location : locations) {            DatabaseH.getShareTalksReference().child(key).child(location).setValue(null);        }        int[] downloadCount = {talks.size()};        log.d(downloadCount);        for (final Talk talk : talks) {            new StorageListener(StorageH.getStream(talk.getPath()), (task) -> {                try {                    file file = new file(sTalksFolder, talk.getfilename());                    talk.setPath(file.getabsolutePath());                    inputStream inputStream = task.getResult().getStream();                    String fileContent = IoUtils.toString(inputStream);                    Talkfile talkfile = new Talkfile(fileContent);                    talkfile.setTalk(talk);                    IoUtils.copy(IoUtils.toinputStream(talkfile.toString()), new fileOutputStream(file));                    downloadCount[0]--;                    if (downloadCount[0] == 0) {                        ReceivedDB.getInstance(context).deleteReceived(locations);                        SendMessagingService.received(getApplicationContext(), locations);                        fileSyncService.addfiles(getBaseContext(), talks);                    }                } catch (IOException e) {                    e.printstacktrace();                }            });        }    }

这是getStream()方法:

public static StreamDownloadTask getStream(String url) {        return FirebaseStorage.getInstance().getReferenceFromUrl(url).getStream();}

解决方法:

我知道这已经有一段时间了,但如果有人得到这个,我为解决这个问题所做的只是修改访问该项目的规则

service firebase.storage {  match /b/{bucket}/o {    match /{allPaths=**} {      allow read, write;    }  }}

我认为默认情况下它希望用户进行身份验证,但出于开发目的,我删除了if语句.您可以在存储部分下的规则选项卡中找到它

总结

以上是内存溢出为你收集整理的android – Firebase存储10.2.6 – >无法打开结果流全部内容,希望文章能够帮你解决android – Firebase存储10.2.6 – >无法打开结果流所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1098116.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存