【发布时间】:2018-05-22 09:30:15
【问题描述】:
我已经在 firebase 存储中上传了多张图片,现在我想将它们的网址与其他数据一起添加到数据中。我该怎么做?我在日志中获取了所有 url,但是当我尝试使用以下代码时应用程序崩溃了?
storageReference = FirebaseStorage.getInstance().getReference();
databaseReference= FirebaseDatabase.getInstance().getReference().child("Blog Data");
final DatabaseReference newBlog = databaseReference.push();
for (int i = 0; i < list.size(); i++)
{
if (imageUri != null) {
final StorageReference ref = filePath.child(fileName[i]);
final int y = i;
ref.putFile(imageUri[i])
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
progressDialog.cancel();
Toast.makeText(getApplicationContext(), "Uploaded successfuly", Toast.LENGTH_LONG).show();
downloadUri[y] = taskSnapshot.getDownloadUrl();
Log.i("DownlaodUri ", "downlaod URi is :"+downloadUri[y].toString());
newBlog.child("image_"+y+1).setValue(downloadUri[y]);
}
}
)
我还尝试在第一个循环之后使用另一个 for 循环来存储 url。它将所有数据保存在数据库中,但不存储 url。
我就是这样尝试的。
}// end of upper for loop
DatabaseReference newBlog = databaseReference.push();
newBlog.child("title").setValue(title);
newBlog.child("desc").setValue(desc);
for(int i = 0; i<list.size(); i++) {
newBlog.child("image_"+i+1).setValue(downloadUri[i]);
}
newBlog.child("location").setValue(location);
它存储除图像之外的所有值。
在数据库中存储所有图像 url 后,我应该如何获取所有图像,因为我不知道数据库中的图像数量,所以我不能制作一定数量的 imageview?我如何知道一个节点有多少个子名称“ïimages_1”、“images_2”?
Logcat。
identical 617 lines
05-22 15:07:22.736 29586-29586/com.example.anant.ExampleE/UncaughtException: at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
at com.google.android.gms.internal.zzekq.zzca(Unknown Source:132)
at com.google.android.gms.internal.zzekp.zzbw(Unknown Source:263)
at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
at com.google.android.gms.internal.zzekq.zzca(Unknown Source:132)
at com.google.android.gms.internal.zzekp.zzbw(Unknown Source:263)
at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
I/zygote64: Background concurrent copying GC freed 635684(49MB) AllocSpace objects, 1(20KB) LOS objects, 44% free, 29MB/53MB, paused 377us total 111.410ms
05-22 15:07:22.737 29586-29586/com.example.anant.ExampleE/UncaughtException: at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
at com.google.android.gms.internal.zzekq.zzca(Unknown Source:132)
at com.google.android.gms.internal.zzekp.zzbw(Unknown Source:263)
at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
I/chatty: uid=10162(com.example.anant.Example) identical 1231 lines
05-22 15:07:23.524 29586-29586/com.example.anant.ExampleE/AndroidRuntime: at com.google.android.gms.internal.zzekp.zzbw(Unknown Source:263)
at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
at com.google.android.gms.internal.zzekq.zzca(Unknown Source:132)
at com.google.android.gms.internal.zzekp.zzbw(Unknown Source:263)
at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
at com.google.android.gms.internal.zzekq.zzca(Unknown Source:132)
at com.google.android.gms.internal.zzekp.zzbw(Unknown Source:263)
at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
FATAL EXCEPTION: main
Process: com.example.anant.Example, PID: 29586
java.lang.StackOverflowError: stack size 8MB
at java.lang.reflect.Method.invoke(Native Method)
at com.google.android.gms.internal.zzekq.zzca(Unknown Source:128)
at com.google.android.gms.internal.zzekp.zzbw(Unknown Source:263)
at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
at com.google.android.gms.internal.zzekq.zzca(Unknown Source:132)
at com.google.android.gms.internal.zzekp.zzbw(Unknown Source:263)
at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
at com.google.android.gms.internal.zzekq.zzca(Unknown Source:132)
at com.google.android.gms.internal.zzekp.zzbw(Unknown Source:263)
at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
at com.google.android.gms.internal.zzekq.zzca(Unknown Source:132)
at com.google.android.gms.internal.zzekp.zzbw(Unknown Source:263)
at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
at com.google.android.gms.internal.zzekq.zzca(Unknown Source:132)
at com.google.android.gms.internal.zzekp.zzbw(Unknown Source:263)
at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
at com.google.android.gms.internal.zzekq.zzca(Unknown Source:132)
at com.google.android.gms.internal.zzekp.zzbw(Unknown Source:263)
at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
at com.google.android.gms.internal.zzekq.zzca(Unknown Source:132)
at com.google.android.gms.internal.zzekp.zzbw(Unknown Source:263)
at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
at com.google.android.gms.internal.zzekq.zzca(Unknown Source:132)
at com.google.android.gms.internal.zzekp.zzbw(Unknown Source:263)
at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
at com.google.android.gms.internal.zzekq.zzca(Unknown Source:132)
at com.google.android.gms.internal.zzekp.zzbw(Unknown Source:263)
at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
at com.google.android.gms.internal.zzekq.zzca(Unknown Source:132)
at com.google.android.gms.internal.zzekp.zzbw(Unknown Source:263)
at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
at com.google.android.gms.internal.zzekq.zzca(Unknown Source:132)
at com.google.android.gms.internal.zzekp.zzbw(Unknown Source:263)
at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
at com.google.android.gms.internal.zzekq.zzca(Unknown Source:132)
at com.google.android.gms.internal.zzekp.zzbw(Unknown Source:263)
at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
at com.google.android.gms.internal.zzekq.zzca(Unknown Source:132)
at com.google.android.gms.internal.zzekp.zzbw(Unknown Source:263)
at com.google.android.gms.internal.zzekp.zzbz(Unknown Source:0)
【问题讨论】:
-
请添加显示错误的logcat
-
我已经添加了 logcat。请检查。
-
错误不是您提出的问题。只需推送每个项目即可添加所有图像 无需设置 image1、image2 等 onDataChange dataSnapShot.getChilderCount() 将获取添加的图像数量
标签: java android firebase firebase-realtime-database firebase-storage