Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.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
Java 从Firestore获取所有图像URL_Java_Android_Firebase_Google Cloud Firestore_Firebase Storage - Fatal编程技术网

Java 从Firestore获取所有图像URL

Java 从Firestore获取所有图像URL,java,android,firebase,google-cloud-firestore,firebase-storage,Java,Android,Firebase,Google Cloud Firestore,Firebase Storage,我正在尝试使用Firestore。我需要获取存储在Firestore文件夹中的所有图像URL。我目前正在跟踪 使用时: db.collection("images") .get() .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() { @Override public void onComplete(@NonNull Task<Quer

我正在尝试使用
Firestore
。我需要获取存储在
Firestore
文件夹中的所有图像URL。我目前正在跟踪

使用时:

db.collection("images")
    .get()
    .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
        @Override
        public void onComplete(@NonNull Task<QuerySnapshot> task) {
            if (task.isSuccessful()) {
                for (QueryDocumentSnapshot document : task.getResult()) {
                    Log.d(TAG, document.getId() + " => " + document.getData());
                }
            } else {
                Log.w(TAG, "Error getting documents.", task.getException());
            }
        }
    });
db.collection(“图像”)
.get()
.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
对于(QueryDocumentSnapshot文档:task.getResult()){
Log.d(标记,document.getId()+“=>”+document.getData());
}
}否则{
Log.w(标记“获取文档时出错”,task.getException());
}
}
});
我得到下面的错误

一开始我是

程序类型已存在:com.google.common.annotations.GwtCompatible

解决办法是:

implementation ("com.google.firebase:firebase-firestore:17.0.3"){
    exclude group: 'com.google.guava'
}

java.lang.RuntimeException: Internal error in Firestore (0.6.6-dev).
    at com.google.firebase.firestore.g.zza.zzb(SourceFile:324)
    at com.google.firebase.firestore.g.zzd.run(Unknown Source:2)
    at android.os.Handler.handleCallback(Handler.java:790)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6494)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
 Caused by: java.lang.NoSuchMethodError: No static method checkArgument(ZLjava/lang/String;I)V in class Lcom/google/common/base/Preconditions; or its super classes (declaration of 'com.google.common.base.Preconditions' appears in /data/app/com.apps.dp-2wjpiDlhe60_b_F7OtfpaQ==/split_lib_dependencies_apk.apk!classes2.dex)
    at com.google.firebase.Timestamp.zza(SourceFile:136)
    at com.google.firebase.Timestamp.<init>(SourceFile:47)
    at com.google.firebase.firestore.d.zzm.<clinit>(SourceFile:12)
    at com.google.firebase.firestore.c.zzav.<init>(SourceFile:24)
    at com.google.firebase.firestore.c.zzat.zzb(SourceFile:104)
    at com.google.firebase.firestore.c.zzi.<init>(SourceFile:125)
    at com.google.firebase.firestore.b.zzf.zza(SourceFile:1215)
    at com.google.firebase.firestore.b.zzh.run(Unknown Source:8)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    at com.google.firebase.firestore.g.zza$zza.run(SourceFile:190)
    at java.lang.Thread.run(Thread.java:764)
    07-26 09:56:29.396 25793-25793/com.apps.dp E/UncaughtException: 
    java.lang.RuntimeException: Internal error in Firestore (0.6.6-dev).
    at com.google.firebase.firestore.g.zza.zzb(SourceFile:324)
    at com.google.firebase.firestore.g.zzd.run(Unknown Source:2)
    at android.os.Handler.handleCallback(Handler.java:790)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6494)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
 Caused by: java.lang.NoSuchMethodError: No static method checkArgument(ZLjava/lang/String;I)V in class Lcom/google/common/base/Preconditions; or its super classes (declaration of 'com.google.common.base.Preconditions' appears in /data/app/com.apps.dp-2wjpiDlhe60_b_F7OtfpaQ==/split_lib_dependencies_apk.apk!classes2.dex)
    at com.google.firebase.Timestamp.zza(SourceFile:136)
    at com.google.firebase.Timestamp.<init>(SourceFile:47)
    at com.google.firebase.firestore.d.zzm.<clinit>(SourceFile:12)
    at com.google.firebase.firestore.c.zzav.<init>(SourceFile:24)
    at com.google.firebase.firestore.c.zzat.zzb(SourceFile:104)
    at com.google.firebase.firestore.c.zzi.<init>(SourceFile:125)
    at com.google.firebase.firestore.b.zzf.zza(SourceFile:1215)
    at com.google.firebase.firestore.b.zzh.run(Unknown Source:8)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    at com.google.firebase.firestore.g.zza$zza.run(SourceFile:190)
    at java.lang.Thread.run(Thread.java:764)
实现(“com.google.firebase:firebase-firestore:17.0.3”){
排除组:“com.google.guava”
}
java.lang.RuntimeException:Firestore(0.6.6-dev)中的内部错误。
位于com.google.firebase.firestore.g.zza.zzb(源文件:324)
访问com.google.firebase.firestore.g.zzd.run(未知来源:2)
位于android.os.Handler.handleCallback(Handler.java:790)
位于android.os.Handler.dispatchMessage(Handler.java:99)
位于android.os.Looper.loop(Looper.java:164)
位于android.app.ActivityThread.main(ActivityThread.java:6494)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
原因:java.lang.NoSuchMethodError:Lcom/google/common/base/Premissions类中没有静态方法checkArgument(ZLjava/lang/String;I)V;或者它的超类(声明'com.google.common.base.premissions'出现在/data/app/com.apps.dp-2wjpiDlhe60_b_f7; otfpaq==/split_lib_dependencies_apk.apk!classes2.dex中)
位于com.google.firebase.Timestamp.zza(源文件:136)
位于com.google.firebase.Timestamp。(源文件:47)
请访问com.google.firebase.firestore.d.zzm。(源文件:12)
在com.google.firebase.firestore.c.zzav(源文件:24)
位于com.google.firebase.firestore.c.zzat.zzb(源文件:104)
网址:com.google.firebase.firestore.c.zzi。(源文件:125)
访问com.google.firebase.firestore.b.zzf.zza(源文件:1215)
访问com.google.firebase.firestore.b.zzh.run(未知来源:8)
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
位于java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
位于com.google.firebase.firestore.g.zza$zza.run(源文件:190)
运行(Thread.java:764)
07-26 09:56:29.396 25793-25793/com.apps.dp E/UncaughtException:
java.lang.RuntimeException:Firestore(0.6.6-dev)中的内部错误。
位于com.google.firebase.firestore.g.zza.zzb(源文件:324)
访问com.google.firebase.firestore.g.zzd.run(未知来源:2)
位于android.os.Handler.handleCallback(Handler.java:790)
位于android.os.Handler.dispatchMessage(Handler.java:99)
位于android.os.Looper.loop(Looper.java:164)
位于android.app.ActivityThread.main(ActivityThread.java:6494)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
原因:java.lang.NoSuchMethodError:Lcom/google/common/base/Premissions类中没有静态方法checkArgument(ZLjava/lang/String;I)V;或者它的超类(声明'com.google.common.base.premissions'出现在/data/app/com.apps.dp-2wjpiDlhe60_b_f7; otfpaq==/split_lib_dependencies_apk.apk!classes2.dex中)
位于com.google.firebase.Timestamp.zza(源文件:136)
位于com.google.firebase.Timestamp。(源文件:47)
请访问com.google.firebase.firestore.d.zzm。(源文件:12)
在com.google.firebase.firestore.c.zzav(源文件:24)
位于com.google.firebase.firestore.c.zzat.zzb(源文件:104)
网址:com.google.firebase.firestore.c.zzi。(源文件:125)
访问com.google.firebase.firestore.b.zzf.zza(源文件:1215)
访问com.google.firebase.firestore.b.zzh.run(未知来源:8)
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
位于java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
位于com.google.firebase.firestore.g.zza$zza.run(源文件:190)
运行(Thread.java:764)

在过去的6个小时里,我一直在努力解决这个问题。我能在这方面得到一些帮助吗。我还有一个问题,是否可以在android中使用
Firestore
APi从文件夹中获取所有图像URL。或者我先在Firebase数据库中保存这些URL?已经查看了一些关于此的帖子,这些帖子说这是不可能的。

根据您上次的评论,请注意,为了检索托管在中的文件夹中的所有文档,您需要知道
路径或
下载URL
。在不知道的情况下,无法简单地从文件夹中获取所有文件

为了解决这个问题,我建议在上传任何文件时,将
下载URL
存储到类似或新的数据库中。请参阅下面一个获取
下载URL
的简单示例

storageRef.child("YourFolderName").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
    @Override
    public void onSuccess(Uri uri) {
        // Got the download URL for "YourFolderName/YourFile.pdf"
        // Add it to your database
    }
}).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception exception) {
        // Handle any errors
    }
});
storageRef.child(“YourFolderName”).getDownloadUrl().addOnSuccessListener(新OnSuccessL