使用hashmap

时间:2018-12-09 06:22:07

标签: android firebase firebase-realtime-database

我将图像Uri保存到数组中。现在,我正在尝试将那些Uri保存到数据库中。使用下面的代码,它每次都会创建一个新的ID。但是,我希望将其全部保存在一个ID下。

ArrayList<String> imageDUrlString = new ArrayList<>();
for (int i = 0; i < arrayuri.size(); i++) {
    imageDUrlString.add(arrayuri.get(i).toString());
}

Map<String, Object> map = new HashMap<>();
map.put("imageDownloadUrl", imageDUrlString);
DatabaseReference dbRefLicenseDoc = FirebaseDatabase.getInstance().getReference();

dbRefLicenseDoc.child(FirebaseAuth.getInstance().getUid()).child(postId)
        .updateChildren(map);

上面的代码会产生以下结果:

---User ID
   ---Random ID
      ----imageDownloadUrl
          ---- 0:"[https://firebasestorage.googleapis.com/ image1
     ---Random ID
          ----imageDownloadUrl
          ---- 0:"[https://firebasestorage.googleapis.com/ image2
   ---Random ID
      ----imageDownloadUrl
          ---- 0:"[https://firebasestorage.googleapis.com/ image3

有没有办法使所有Uri都像这样的用户ID下的固定ID?

---User ID
   ----imageDownloadUrl
       ---- 0:"[https://firebasestorage.googleapis.com/ image1
       ---- 1:"[https://firebasestorage.googleapis.com/ image2
       ---- 3 :"[https://firebasestorage.googleapis.com/ image3

我很感谢任何建议

1 个答案:

答案 0 :(得分:0)

HashMap<String,String> imageDUrlString = new HashMap<>();
  DatabaseReference dbRefLicenseDoc = FirebaseDatabase.getInstance().getReference();

            dbRefLicenseDoc.child(FirebaseAuth.getInstance().getUid()).child("imageDownloadUrl");
            for (int i = 0; i < arrayuri.size(); i++) {
                imageDUrlString.put( dbRefLicenseDoc.push().getKey(),arrayuri.get(i).toString());
            }

                    dbRefLicenseDoc.updateChildren(map);

希望有帮助