如何将图像链接数组上传到Firestore

时间:2018-12-02 18:13:05

标签: android firebase google-cloud-firestore firebase-storage

我刚刚完成了一个博客应用,该应用允许用户上传单个图像作为帖子。我正在使用Firestore从Cloud Storage中保存图像链接

final StorageReference postPath.putFile(mainImageURI).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
                  @Override
                  public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
                      if (task.isSuccessful()){
                          downloadUri = 
        task.getResult().getDownloadUrl().toString();
       Map<String, Object> map = new HashMap<>();
                    map.put("image_url", downloadUri);
                        {

但是,我现在打算允许用户为每个帖子上传多个图像。对我来说,将图像上传到Cloud Storage没问题。但是,如何在Cloud Storage中为一个文档子项保存一系列图像链接。我一直无法弄清楚。请帮忙。

3 个答案:

答案 0 :(得分:0)

Firestore具有字段的数组类型。只需使用您要编写的所有URL的字符串填充ArrayList,然后将其作为文档中要存储它的字段的值即可。

答案 1 :(得分:0)

在存储方面,我认为没有文件夹或类似文件之类的“子级别”,但是在Firestore上,您可以按照其他答案的要求进行操作,也可以将链接作为集合添加到任何文档中。基本上使用它们创建字典并像这样添加它们。

答案 2 :(得分:0)

private ArrayList<String> image_urls;

.....

 image_urls = new ArrayList<>();
//add your images strings to the array list

// send to firestore with map function
  Map<String, Object> map = new HashMap<>();
map.put("image_urls", image_urls);
 firebaseFirestore.collection("Posts").add(map).addOnCompleteListener(new OnCompleteListener<DocumentReference>() {
                        @Override
                        public void onComplete(@NonNull Task<DocumentReference> task) {

                        }
                    });